美文网首页
修改xib自定义cell的frame,自定义view同样适用。

修改xib自定义cell的frame,自定义view同样适用。

作者: 0x00chen | 来源:发表于2017-03-28 14:14 被阅读79次

    文章写的比较简洁所以可能一眼看不懂什么意思,这里我解释一下,通常我们用纯代码来自定义view或者cell的时候,初始化都是在自定义view的下面

    - (instancetype)initWithFrame:(CGRect)frame;
    

    这个方法里面初始化,然后再控制器里面初始化

    SomeView *cusView =[SomeView alloc]initWithFrame:CGRect(x,y,w,h)];
    

    修改frame的话也可以直接修改,但是当我们用xib自定义view的时候如果你想修改里面某个view的frame的时候就不能直接通过代码修改了,通过下面的方法可以实现代码修改xib的frame,原理就是通过drawRact方法重绘界面。


    不用取消autolayout 不用拉约束修改Contraints,方便快捷。

    👏.gif

    直接上代码。

    .m
    @interface CommunityTopCell (){
        CGRect myframe;  
    }
    
    
    .m
    - (id)initWithFrame:(CGRect)frame{
        self = [super initWithFrame:frame];
        if (self) {
            NSArray * nibs = [[NSBundle mainBundle]loadNibNamed:NSStringFromClass([CommunityTopCell class]) owner:nil options:nil];
            self = nibs[0];
            myframe = frame;
        }
        return self;
    }
    - (void)drawRect:(CGRect)rect{
        self.frame = myframe; //关键
    }
    
    

    (打扰了)

    相关文章

      网友评论

          本文标题:修改xib自定义cell的frame,自定义view同样适用。

          本文链接:https://www.haomeiwen.com/subject/cnyjottx.html