1.当view通过xib加载时,通过initWithCoder:方法初始化,而不能通过init和initWithFrame:方法
如果xib中的子控件是通过xib创建(addSubView的目标是某个self.xxx),默认处于未唤醒状态,
唤醒的方法:重写awakeFromNib方法,将创建子控件的代码放到这个方法中
2.UIButton改变内部图片文字位置的办法:
自建一个继承与UIButton类来存放按钮,
方法1:重写titleRectForContentRect和imageRectForContentRect方法
方法2:重写layoutSubviews方法
3.UIButton的内边距:可以通过以下代码设置UIButton全局、标题和图片的内边距
self.button.contentEdgeInsets = UIEdgeInsetsMake(top, left, bottom, right);
self.button.titleEdgeInsets = UIEdgeInsetsMake(top, left, bottom, right);
self.button.imageEdgeInsets = UIEdgeInsetsMake(top, left, bottom, right);
4.UIImage背景图片的拉伸,即拉伸时受保护的位置保持长宽不变,从剩下的位置复制或平铺以填充全图拉伸后空出的区域(如qq聊天的气泡)
//方式1
UIImage *resizableImage = [image resizableImageWithCapInsets:(imageHight * 0.5, imageWidth * 0.5, imageHight * 0.5 - 1, imageWidth * 0.5 - 1) resizingMode:UIImageResizingModeTile];
//方式2
UIImage *resizableImage = [image stretchableImageWithLeftCapWidth:imageWidth * 0.5 topCapHeight:imageHeight * 0.5];
//使用保护区最常用的参数即如代码所示;两种方式的效果完全一样,第二种方案会自动生成botton和right中如第一种方法的中width或height-1的保护区
在Interface Builder中保护拉伸的设置在Slicing中