2014-02-20 5 views
0

У меня есть одна кнопка и одно поле поиска в панели навигации, и я добавил новую кнопку по коду из одного класса для просмотра.кнопка программы и кнопка раскадровки

Проблема заключается в следующем: при просмотре кнопки другая кнопка и поле поиска, добавленное с помощью раскадровки, более нечувствительны и не работают.

UIImage * buttonImage = [UIImage imageNamed:@"chat-notify.png"]; 

button = [UIButton buttonWithType:UIButtonTypeCustom]; 
[button addTarget:self 
      action:@selector(goChat) 
forControlEvents:UIControlEventTouchDown]; 
//[button setTitle:@"1" forState:UIControlStateNormal]; 
button.frame = CGRectMake(280.0, 25.0, 30.0, 30.0); 
[button setBackgroundImage:buttonImage forState:UIControlStateNormal]; 

[self.view addSubview:button]; 

, а затем в контроллере:

notificationViewController* notification = [[notificationViewController alloc]init]; 
//[notification methodA]; 

[notification makeButtonNotification]; 

[self.view addSubview:notification.view]; 

Кто-нибудь знает, где моя ошибка?

Благодаря

ответ

0

Почему вы добавления кнопки, конечно, иметь его там и изменить это скрытое состояние было бы проще, то вы можете сохранить все это в раскадровке

UIControlEventTouchUpInside 

является то, что вы должны использовать не " UIControlEventTouchDown "

TouchUpInside обычно является событием, в котором вы запускаете действие с помощью кнопки. Это когда пользователь поднимается с кнопки после нажатия. Вы не хотите запускать действие в Touch Down, так как использование может отвести его от кнопки, чтобы отменить нажатие, что является стандартным и ожидаемым поведением на iOS.

ОБНОВЛЕНИЕ: основывайте свой комментарий на этот ответ, возможно, вы нужно добавить кнопку в определенную точку в вашем представлении. Как и в вашем представлении раскадровки, будут добавлены, поскольку они перечислены в этой доске, начиная сверху вниз, а нижняя часть - сверху.

Попытайтесь убедиться, что представления, которые вы хотите получить касания, не находятся непосредственно над каждым и что они не перекрываются. Также попробуйте добавить программно сгенерированную кнопку выше или ниже определенного вида, вместо того, чтобы просто сделать ее верхним подпунктом в вашем основном представлении, которое звуками не того, что вы хотите.

Как вы добавляете кнопку как этот

[self.view addSubview:button]; 

может быть лучше, чтобы сделать это больше, как это

[self.view insertSubview:button aboveSubview:someOtherView] 

Чтобы сделать это, вы, вероятно, нужно подключить ваш " someOtherView "в IBOutlet, чтобы вы могли ссылаться на него в своем коде. Похоже, вы, скорее всего, придерживаетесь своей кнопки над всем остальным, когда вам нужно быть более точным.

+0

Умм .. я не понимаю ... как насчет UIControlEventNormal? и мне нужна одна кнопка по коду, потому что я должен установить уведомление о количестве, и эта кнопка находится во всех представлениях, а другая кнопка us JASidePannel и не будет работать программно ... –

+0

Извините, я не понимаю вашу проблему, возможно, покажу больше кода. Поскольку использование одной и той же кнопки во множестве точек зрения не является тем, что вы пытаетесь сделать. – AppHandwerker

+0

Спасибо, я не знал этого. Кстати, дело не в том, что проблема в том, что когда я добавляю представление кнопки из кода, это покрывает другие объекты ... –

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