2013-03-05 5 views
1

У меня есть пользовательский UIView с некоторыми кнопками в качестве подзонов. Я прочитал много потоков о моей проблеме, но решения, которые были опубликованы, не работали для меня.UIButtons в пользовательском UIView не отвечает (снова)

Если я установил кадр одной из кнопок в некоторые координаты за пределами моего UIView, кнопка работает. Когда я устанавливаю кадр одной из кнопок в некоторые координаты, где пользовательский UIView и кнопка перекрываются, кнопка отвечает только в области, где они не перекрываются.

Это мой код:

Я инициализировать пользовательские UIView в методе viewDidLoad:

[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:

- (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]; 
+0

[self.view bringSubviewtofront: ]; попробуйте это – amar

+0

Я уже пробовал это, я опубликую то, что я точно сделал. Я попробовал это в своем представленииDidLoad [self.view bringSubviewToFront: _ddButtonBar]; и это в моем обычном UIView [self bringSubviewToFront: button1]; Я не могу использовать [self.view ...] в своем пользовательском UIView. – user2135074

+0

Лучшим вариантом является дать отличный цвет для всех видов, посмотрите, какой вид находится над вашей кнопкой, или кнопка rect может выйти за пределы прямой видимости, на которую она добавлена. – amar

ответ

0

Проверьте у положения следующего button.In ваш кода установки те же у всех позиций для кнопки.

+0

Мой пользовательский интерфейс выглядит так, поэтому я думаю, что позиции должны быть в порядке и они не перекрываются. http://imageshack.us/a/img600/4877/iossimulatorbildschirmf.png – user2135074

+1

Я нашел проблему. Мои кнопки не были расположены в реальной области UIView, они были сдвинуты вниз на несколько пикселей. Спасибо :) – user2135074

Смежные вопросы