2011-09-22 8 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×40のイメージがあるとしますが、300×40のボタンの右側にそのイメージが必要です。透明にイメージのサイズを大きくすると、左に260ピクセルは表示されません。テキストの場合は、Interface builderのアラインメントアイコンを使用して、タイトルを目的の場所に配置することができます。

+0

私はサブクラス化を試みましたが、私はそれが私が望むところにtitleLabelを移動することができましたが、私はsetImageを理解できません。あなたの方法が一番簡単だと思います。 – Adam

+0

私はそれがうまくいくとは思わない。何らかの理由で私のイメージがテキストを覆います – Adam

+0

それを背景イメージにします。 –

関連する問題