2011-09-22 87 views
0

我想要一个大的按钮跨越我的表格单元格的长度,其中包含右侧的setImage图标和左侧的setTitle。但是,默认情况下,所有内容都与左侧对齐。设置UIButton的setImage和setTitle的位置

有没有办法改变UIButton图像和标题视图的位置?我希望一切都在一个按钮中,这样如果有人点击标题,图标也会改变其状态。

回答

0

我做的是子类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 
0

使您的图像与按钮大小相同(即用透明胶片填充它),让事情发展到您想要的位置。假设您有一张40 x 40的图像,但您希望它位于300 x 40的按钮的右侧。只需增加透明图像的大小即可,左侧没有260像素。对于您的文本,您可以使用“界面”构建器中的对齐图标将标题放在所需的位置。

+0

我试过子类化,我能够将titleLabel移动到我想要的位置,但是我找不到setImage。我认为你的方法是最简单的。 – Adam

+0

我不认为它会起作用。出于某种原因,我的图像掩盖了文字 – Adam

+0

使其成为背景图像。 –