当前位置 博文首页 > cungudafa的博客:iOS布局

    cungudafa的博客:iOS布局

    作者:[db:作者] 时间:2021-09-08 10:28

    前言

    2021年也在奋力的学习iOS开发呀,一些自己踩到的小坑也可以说是常用解决方案吧,记录分享。

    1.UIButton设置图片后点击无响应

    UIButton点击无响应的原因有很多,最近我遇到一个问题是因为设置图片尺寸过小的原因。

    一次UI改版中,漂亮的UI小姐姐给的Button切图比以前的切图要小很多,没关系,我是自己长大的程序员,我可以设置Button属性为setBackgroundImage,就可以根据尺寸随意调整大小啦;OK,Button的样式显示非常nice!

    Button点击事件调试中,为什么触发率这么低?偶尔点得到、偶尔点击无响应?聪明的我很快意识到是因为Button的尺寸太小而点击不到,如果把button尺寸放大,bgImage尺寸失调不符合UI、如果设置为setImage属性UI切图过小也不行,程序员为难;是找UI小姐姐重新切图还是另寻方法?

    解决方案:

    • 设置图片为ImageView,调整图片大小;
    • 将图片添加到Button上,完美解决。

    如果是你,你会找UI小姐姐重新切图还是独自长大?

    2.TableView中嵌套CollectionView滑动冲突

    一个合格的程序员总会被UE安排各种混合布局的页面,她想要的样子,我这里都有!

    表格布局和流水布局离不开最核心的就是它的滑动,这次遇到的问题比较简单,均是上下滑动、只让tableview滑动,但是滑动时有两个滑动条,设置CollectionView.scrollEnabled = NO;即可。

    3.CollectionView的高度自适应

    百度一通,全部给我cell如何自适应高度,然后教我如何计算cell的高度!不是不是,
    在我复杂而美丽的布局页面中,collection中的section是实时更新的,即collectionView的高度会变化,前面说了嵌套,同时我需要在tableview中根据collectionview的高度变换,实时刷新整个UI布局。

    关键点:

    1. 设置collectionView布局时,上下左右设置约束即可
    [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(self.view);
        make.left.right.equalTo(self.view).offset(0);
        make.bottom.equalTo(self.view);
    }];
    
    1. 获取collectionview本身的高度:
    CGFloat height = _collectionView.collectionViewLayout.collectionViewContentSize.height;
    
    1. 将高度传给tableview
    @property (nonatomic,copy) void (^refreshCollectionViewHeight)(CGFloat height);
    
    if(self.refreshCollectionViewHeight){
    	self.refreshCollectionViewHeight = height;
    }
    
    1. 刷新高度
    self.collectionView.frame = CGRectMake(0,0,500,400);//随意设置一个高度
    self.collectionView.refreshCollectionViewHeight = ^(CGFloat height){
    	self.collectionView.frame = CGRectMake(0,0,500,height);
    }
    [self.tableView reloadData];//刷新视图
    

    现在就很丝滑,是UI想要的样子!

    cs
    下一篇:没有了