1

サブビューとしていくつかのボタンを持つカスタム UIView があります。私の問題について多くのスレッドを読みましたが、投稿された解決策はうまくいきませんでした。

ボタンの 1 つのフレームを UIView の外側の座標に設定すると、ボタンが機能します。ボタンの 1 つのフレームを、カスタム UIView とボタンが重なっている座標に設定すると、重なっていない領域でのみボタンが応答します。

これは私のコードです:

viewDidLoad メソッドでカスタム UIView を初期化します。

[super viewDidLoad];

DDButtonBar *ddButtonBar =  _ddButtonBar;

[ddButtonBar showButton1:TRUE];
[ddButtonBar showButton2:TRUE];
[ddButtonBar showButton3:TRUE];
[ddButtonBar showButton4:TRUE];
[ddButtonBar showBackButton:TRUE];
[ddButtonBar showSettingsButton:TRUE];

[ddButtonBar setButtonTitle1:@"1"];
[ddButtonBar setButtonTitle2:@"2"];
[ddButtonBar setButtonTitle3:@"3"];
[ddButtonBar setButtonTitle4:@"4"];

これは、UIView の私の init メソッドです。

 - (id)initWithFrame:(CGRect)frame

self = [super initWithFrame:frame];
if (self) {

    // Standardinitialisierung
    _drawButton1 = TRUE;
    _drawButton2 = TRUE;
    _drawButton3 = TRUE;
    _drawButton4 = TRUE;
    _drawBackButton = TRUE;
    _drawSettingsButton = TRUE;

    _buttonTitle1 = @"1";
    _buttonTitle2 = @"2";
    _buttonTitle3 = @"3";
    _buttonTitle4 = @"4";

    [self layoutSubviews];


}
return self;

}

私はそのように私のボタンを描いています

 UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button1 addTarget:self
            action:@selector(aMethod:)
  forControlEvents:UIControlEventTouchUpInside];
[button1 setTitle:_buttonTitle1 forState:UIControlStateNormal];

button1.frame = CGRectMake(rechtsverschiebung, height, buttonWidth, height);

[button1 setBackgroundImage:_buttonBackground forState:UIControlStateNormal];
[button1 setTitleColor:[UIColor colorWithRed:255.0 green:255.0 blue:255 alpha:1.0] forState: UIControlStateNormal];
[button1 setTitleColor:[UIColor colorWithRed:247.0 green:165.0 blue:32 alpha:1.0] forState: UIControlStateHighlighted];

[self addSubview:button1];
4

1 に答える 1

0

次のボタンのy位置を確認してください。コードでは、すべてのボタンに同じy位置を設定しています。

于 2013-03-05T09:52:39.420 に答える