ios 问题记录篇(1)
程序员文章站
2024-01-15 20:00:22
...
ios 最近遇到的问题记录
- 关于View的类名设置
- 可下拉扩展的cell
-
View 添加手势不响应
关于第一点,view可以分为自定义的View 和有ViewController的View,Viewcontroller的xib文件中一般是在FilesOwner设置属于的Class
自定义的View,由于是自己添加的xib文件,需要将xib和创建的文件连接,需要将创建的xib的contentView的class修改为需要连接的自定义的view的文件,(比如Myview)
,在调用自定义的View的时候,只需要调用
[[[NSBundle mainBundle] loadNibNamed:@”myview” owner:self options:nil] lastObject];就可以实现Myview的初始化。
第二个问题,可下拉展示的cell我是用整个一个View放在cell里面,刚开始隐藏,点击展开按钮,cell的高度发生变化,然后设置model.isExpand =YES;
点击隐藏,修改model.isExpand = NO;最后的操作就是没点击一次展开或者收起的按钮,都需要[self.tableview reloadData];
暂时没有想到更好的方案,由于每次都需要刷新整个列表,所以很耗费资源。
第三个问题 要是遇到类似的问题,检查addGestureRecognizer的View是否设置了可交互
cell.itemView.userInteractionEnabled=YES;
cell.itemView.tag = indexPath.row;
DDLogVerbose(@"第%d个cell", cell.itemView.tag)
UITapGestureRecognizer *tap1 = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(resetClock:)];
[cell.itemView addGestureRecognizer:tap1];
//这个可以加到任何控件上,比如你只想响应WebView,我正好填满整个屏幕
tap1.delegate = self;
tap1.cancelsTouchesInView = NO;
还有就是希望添加手势的view的button的点击事件不要被整个view的点击事件拦截,需要实现一个代理方法
- (BOOL)gestureRecognizer:(UIGestureRecognizer )gestureRecognizer shouldReceiveTouch:(UITouch )touch{
if ([touch.view isKindOfClass:[UIButton class]]) {
//放过button点击拦截
return NO;
}else{
return YES;
}
}
就这么几个问题记录一下。
上一篇: 10.k8s持久化存储
下一篇: 逆置一个单链表的三种方法