2012-03-19 3 views
0

Я добавил пользовательскую кнопку и добавил к ней UIImage. С тех пор, как я добавил изображение, я не могу нажать кнопку, для обнаружения щелчка требуется 3-4 попытки и выполнение кода. Почему это ?Добавление изображения к кнопке, а затем нажмите кнопку не обнаружено

UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom]; 
    UIImage *buttonImage = [UIImage imageNamed:@"button.png"]; 
[button setBackgroundImage:buttonImage forState:UIControlStateNormal];  
button.frame = CGRectMake(10.0, 90.0, 150.0, 40.0); 
button.backgroundColor = [UIColor clearColor]; 
[button addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];  
[customView addSubview:button]; 

The ButtonClick Метод:

-(void)buttonClick:(id)sender { 
NSLog (@"Click"); 
} 
+2

Когда вы прокомментируете часть изображения, действительно ли она работает лучше? Я не мог придумать, каким образом изображение повлияет на удобство нажатия кнопок ... если только изображение не заставило вас щелкнуть неправильно? – Ahti

+1

Проверьте свой кадр customView. достаточно для кнопки. – ArunGJ

+0

просто попробовал ваш код, казалось, работал нормально, но я сделал '[self.view addSubview: button]', попробуйте с 'self.view' и посмотрим, есть ли какие-либо изменения в кликабельности. – iNoob

ответ

1

@Illep Я использовал свой код в демо-приложение и добавил button.png а. Код работает абсолютно нормально.

Так как вы добавляете эту кнопку в отдельное окно т.е.

[customView addSubview:button]; 

так что есть довольно много шансов, что либо взаимодействия с пользователем этой customView или кнопки становятся добавлены где-то вне рамок вашего customView (хотя шансов довольно мало). Вы можете проверить это, установив clipSubView ИСТИНУ для customView ..

enter image description here

Надеется, что это помогает.

+1

Проблема может быть вашей областью customView, когда кнопка не вписывается в ее область, тогда вы не можете взаимодействовать с ней. Поскольку rahul предложил использовать clipToSubview для TRUE. Затем кнопка будет находиться в фокусе пользовательского вида/вы можете зарегистрировать позицию и размеры для сравнения. Надеюсь, что это поможет, если не добавить комментарий снова. – iDroid

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