请查看UIButton的titleEdgeInsets
属性。
@property(nonatomic) UIEdgeInsets titleEdgeInsets
使用下面的方法可以在UIButton中同时获取以上两种状态。
[myButton setImage: [UIImage imageNamed:@"settingImage.png"] forState:UIControlStateNormal];
[myButton setTitleEdgeInsets:UIEdgeInsetsMake(100.0, -100.0, 10.0, 15.0)];
[myButton setTitle:@"settings" forState:UIControlStateNormal];
获取按钮的出口。
UIImageView *img1=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"blue-thumb.jpg"]];
CGRect rect1=CGRectMake(0,0,20,30);
[img1 setFrame:rect1];
[btn1 addSubview:img1];
你也可以用它来设置标签。
我发现最简单的方法是创建一个宽度为(左图像+文本宽度+左图像)的png文件,但仅包含左侧设置图像。
然后将其用作按钮的背景。
文本来自按钮本身,因此您可以轻松更改文本而无需更改图像。如果现在将文本居中,它将与左侧的图像和旁边的文本完美匹配。
代码如下:
[myBtn setTitle: @"settings" forState:UIControlStateNormal]
[myBtn setBackgroundImage: [UIImage imageNamed:@"myBtn.png"] forState:UIControlStateNormal];
此外,如果您计划将其用于不同的语言环境,则也将兼容本地化。