一个问号,点击给一个提示view的实现。

本文介绍如何实现一个通用的提示视图,用于在点击问号图标时显示详细信息。内容包括两种不同的展示样式,并强调视图可以根据外部传入的样式参数进行定制,如横竖布局或是否包含列表。通过内部解析和显示字典数组中的内容,可以轻松实现所需效果。
摘要由CSDN通过智能技术生成

很简单的一个东西,不过为了应付各种情况,比如cell上有问号,点击弹出来,比如这样
这里写图片描述
又或者需要这样:
这里写图片描述

这时候需要做一个统一管理的样式,外部负责传入样式,view内部根据样式来定制。比如横竖,比如是否需要竖直列表的方式等。

上代码:


.h文件:


typedef enum: NSUInteger{
    AskViewShowTypeVertical = 0,// 水平展示
    AskViewShowTypeHoritical = 1// 竖直展示
}AskViewShowType;

typedef enum: NSUInteger{
  // 箭头所依附的方向
    ArrowDependDerectionTop = 0,
    ArrowDependDerectionLeft = 1,
    ArrowDependDerectionBottom = 2,
    ArrowDependDerectionRight = 3
}ArrowDependDerection;

@interface XDYAskRemindView : UIView



/**
 初始化方法介绍

 @param frame 可以使用masonry后传
 @param type view展示方向,可以为横,竖
 @param derection 箭头所在方向,上下左右
 @param pvalue 箭头在某一方向的位置,如在上下,pvalue为x值,若在左或右,pvalue为y值
 @param arr 内容数组,内部为字典结构
 @param title 竖直展示时显示的title
 @return
 */
-(instancetype)initWithFrame:(CGRect)frame axixWithType:(AskViewShowType)type arrowDepend:(ArrowDependDerection)derection point:(CGFloat)pvalue contentText:(NSArray <NSDictionary *> *)arr title:(NSString *)title;

**.m文件**
--------

@interface XDYAskRemindView()

@property (nonatomic, unsafe_unretained) AskViewShowType askType;
@property (nonatomic, unsafe_unretained) ArrowDependDerection arrowDerection;
@property (nonatomic, unsafe_unretained) CGFloat arrowLocate;
@property (nonatomic, strong) NSArray <NSDictionary *> *contentArray;
@property (nonatomic, strong) NSString *title;
@property (nonatomic, unsafe_unretained) CGPoint arrowP;

@end

@implementation XDYAskRemindView

-(void)drawRect:(CGRect)rect{
    // 进入此方法后先画三角形,其他的部分在createview里面画,结构就是一个回字型,里面的口内部是用来画页面,里面口与外面口之间的通道用来挪移三角形的位置
    if (_arrowDerection == ArrowDependDerectionTop) {
        self.arrowP = CGPointMake(self</
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值