在UIButton中为所有状态定位图像

jsp*_*ner 1 iphone objective-c uibutton ios

可能重复:
UIButton:如何使用imageEdgeInsets和titleEdgeInsets使图像和文本居中?

我正在自定义我的UIButton的图像和标签的位置,但它只设置在初始状态.什么是黑客,我如何确保所有4个按钮状态的定位?

这是我正在使用的代码.中毒适用于第一个州,但在其他州重置.

CGRect imgRect = reviewsButton.imageView.frame;
imgRect.origin.x = 10;
imgRect.origin.y += 4;    
reviewsButton.imageView.frame = imgRect;

CGRect lblrect = reviewsButton.titleLabel.frame;
lblrect.origin.x = 85;
reviewsButton.titleLabel.frame = lblrect;
[reviewsButton setBackgroundColor:[UIColor colorWithRed:0.192 green:0.198 blue:0.206 alpha:0.15]];
Run Code Online (Sandbox Code Playgroud)

vor*_*max 5

UIButton专门为此做的属性

@property(nonatomic) UIEdgeInsets contentEdgeInsets
@property(nonatomic) UIEdgeInsets imageEdgeInsets
@property(nonatomic) UIEdgeInsets titleEdgeInsets
Run Code Online (Sandbox Code Playgroud)

使用此属性可以调整按钮图像的有效绘图矩形并重新定位.您可以为四个插图(顶部,左侧,底部,右侧)中的每一个指定不同的值.正值会缩小或缩小,使其靠近按钮的中心.负值会扩展或偏离该边缘.使用UIEdgeInsetsMake函数为此属性构造值.默认值为UIEdgeInsetsZero.