设置UIButton的setImage和setTitle的位置
问题描述:
我想要一个大的按钮跨越我的表格单元格的长度,其中包含右侧的setImage图标和左侧的setTitle。但是,默认情况下,所有内容都与左侧对齐。设置UIButton的setImage和setTitle的位置
有没有办法改变UIButton图像和标题视图的位置?我希望一切都在一个按钮中,这样如果有人点击标题,图标也会改变其状态。
答
我做的是子类UIButton,并在layoutSubview方法中设置[self titleLabel]和[self imageView]。
#import "CustomDetailTableButton.h"
@implementation CustomDetailTableButton
- (void)layoutSubviews
{
[super layoutSubviews];
UILabel *titleLabel = [self titleLabel];
CGRect fr = [titleLabel frame];
fr.origin.x = 10.0;
fr.origin.y = 5.0;
[[self titleLabel] setFrame:fr];
UIImageView *imageView = [self imageView];
CGRect iFrame = [imageView frame];
iFrame.origin.x = 300.0;
iFrame.origin.y = 7.0;
[[self imageView] setFrame:iFrame];
}
@end
答
使您的图像与按钮大小相同(即用透明胶片填充它),让事情发展到您想要的位置。假设您有一张40 x 40的图像,但您希望它位于300 x 40的按钮的右侧。只需增加透明图像的大小即可,左侧没有260像素。对于您的文本,您可以使用“界面”构建器中的对齐图标将标题放在所需的位置。
我试过子类化,我能够将titleLabel移动到我想要的位置,但是我找不到setImage。我认为你的方法是最简单的。 – Adam
我不认为它会起作用。出于某种原因,我的图像掩盖了文字 – Adam
使其成为背景图像。 –