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一样
本文探讨了iOS开发中UIButton的一些常见问题,包括图片与文字的默认排布以及如何实现它们的重叠。同时,详细阐述了frame和bounds的区别,指出frame表示视图在父控件坐标系的位置和大小,而bounds则描述视图自身的坐标和大小,即使视图旋转,bounds的宽高依然保持不变。
3万+

被折叠的 条评论
为什么被折叠?



