UIButton отвечает только на небольшой территории - PullRequest
2 голосов
/ 29 мая 2010

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

У меня есть метод, который возвращает UIButtons после того, как я предоставил ему тег:

- (UIButton*)niceSizeButtonWithTag:(int)tag {

    UIButton * aButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [aButton setTag:tag];
    [aButton addTarget:self action:@selector(buttonWasTapped:) forControlEvents:UIControlEventTouchUpInside];

    CGRect newFrame = aButton.frame;
    newFrame.size.width = 44;
    newFrame.size.height = 44;
    [aButton setFrame:newFrame];

    return aButton;
}

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

UIButton * anotherButton = [self niceSizeButtonWithTag:1];
[anotherButton setImage:[UIImage imageNamed:@"image" withExtension:@"png"] forState:UIControlStateNormal];
[anotherButton setCenter:CGPointMake(middleOfView)];
[aView addSubview:anotherButton];

Я создаю много таких кнопок, отсюда и причина метода.

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

На этом прикрепленном изображении

альтернативный текст http://web1.twitpic.com/img/107755085-5bffdcb66beb6674d01bb951094b0e55.4c017948-full.png

  • Желтый цвет показывает всю рамку кнопки,
  • Красный показывает область, которая будет реагировать на прикосновения.
  • Серый цвет показывает часть вида, к которому добавлена ​​кнопка.

Если бы кто-нибудь мог пролить свет на то, почему это происходит, это было бы очень полезно.

UPDATE:

Я, вероятно, должен упомянуть, что я пытаюсь добавить эту кнопку в UIView, который является подпредставлением UITableViewCell.

ОБНОВЛЕНИЕ 2:

Добавление его непосредственно в UITableViewCell работает, добавление его в UIView на UITableViewCell вызывает ошибку.

ФИНАЛЬНОЕ ОБНОВЛЕНИЕ Проблема оказалась в том, что я отправлял представление, содержащее кнопку, в конец подпредставлений на UITableViewCell. Избавление от sendSubviewToBack: звонка исправило это.

1 Ответ

1 голос
/ 29 мая 2010

Есть ли у вас какие-либо другие виды, добавленные в этот содержащий вид после добавления кнопки? попробуйте установить для некоторых цветов фона вашего представления значения blueColor, redColor и других цветов, чтобы лучше увидеть, как выглядит стек представлений в вашем приложении. Тогда вы легко сможете увидеть, если какой-то вид блокирует кнопку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...