欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ios 问题记录篇(1)

程序员文章站 2024-01-15 20:00:22
...

ios 最近遇到的问题记录

  1. 关于View的类名设置
  2. 可下拉扩展的cell
  3. View 添加手势不响应

    关于第一点,view可以分为自定义的View 和有ViewController的View,Viewcontroller的xib文件中一般是在FilesOwner设置属于的Class
    ios 问题记录篇(1)
    自定义的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;
    }

}
就这么几个问题记录一下。

相关标签: ios class 手势