大きなボタンは、右側にsetImageアイコンが、左側にsetTitleを含むテーブルセルの長さにわたっています。しかし、デフォルトでは、すべてが左に揃えられます。UIButtonのsetImageとsetTitleの位置を設定する
UIButtonイメージとタイトルビューの位置を変更する方法はありますか?誰かがタイトルをクリックするとアイコンもその状態を変えるように、すべてがワンボタンになるようにしたい。
大きなボタンは、右側に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×40のイメージがあるとしますが、300×40のボタンの右側にそのイメージが必要です。透明にイメージのサイズを大きくすると、左に260ピクセルは表示されません。テキストの場合は、Interface builderのアラインメントアイコンを使用して、タイトルを目的の場所に配置することができます。
私はサブクラス化を試みましたが、私はそれが私が望むところにtitleLabelを移動することができましたが、私はsetImageを理解できません。あなたの方法が一番簡単だと思います。 – Adam
私はそれがうまくいくとは思わない。何らかの理由で私のイメージがテキストを覆います – Adam
それを背景イメージにします。 –