UIbutton的坑以及frame和bounds的区别

UIButton坑:

1)设置图片+文字默认不会重叠,而是把这两个子view排开放,所以如果button的大小不够容纳两个view,就会只显示一部分。

如果想强行设置重叠,需要设置EdgeInset

[button setImageEdgeInsets:UIEdgeInsetsMake(0, 0, 0, -button.titleLabel.intrinsicContentSize.width)];

[button setTitleEdgeInsets:UIEdgeInsetsMake(0, -button.currentImage.size.width, 0, 0)];

2)设置图片或者文字不能直接调用setter,需要调用setTitle或者setImage,因为是深拷贝

3)frame,bounds区别:

frame的(父控件坐标系):(x,y)=(这个视图距离父控件的左边的距离,这个视图距离父控件的右边的距离)

理解为frame就是“画框”的坐标和大小,画如果有变形或旋转,画框只需要能保证容纳这幅画就可以,不需要改变方向


bounds(自身坐标系):的(x,y)=(frame的x-view的真实x,frame的y-view的真实y

理解为bounds就是“画”的坐标和大小,而画的大小(bounds的大小)不一定与画框一样大,位置(bounds的xy)也可以不是画框的左上角,如果画旋转方向,bounds的宽和高情况和frame一样


猜你喜欢

转载自blog.csdn.net/guozirong123/article/details/80781462
今日推荐