Меньшая активная область для пользовательского UIBarButtonItem

У меня есть UINavigationBar с пользовательским UIBarButtonItem (который использует UIButton в качестве его пользовательского представления). Проблема: активная площадь пользовательской кнопки является слишком большой, если я касаюсь по крайней мере 40 пикселей вне кнопки, она все еще регистрируется как касание на кнопке. Это приводит к случайным касаниям. Как я могу уменьшить активную область на этих кнопках?

5
задан mrueg 3 March 2010 в 01:02
поделиться

2 ответа

Я думаю, что вы не изменили размер пользовательской кнопки... Попробуйте сделать следующее... В Interface builder выберите кнопку, активную область которой вы хотите уменьшить, а затем нажмите "Command+3" или "tools --> Size inspector", при этом уменьшите значения 'W' и 'H'... Это сделает пользовательскую кнопку меньше и таким образом активная область также уменьшится...

~Raviraja

0
ответ дан 14 December 2019 в 13:33
поделиться

Вы добавляете кнопку через Interface Builder или делаете это программно? В любом случае, вы можете использовать эту строку кода для установки границ изображения:

yourButton.bounds = CGRectMake( 0, 0, yourImage.size.width, yourImage.size.height );  

Если вам нужен полный пример, вот тот, который я использовал в одном из своих приложений:

    UIImage *image = [UIImage imageNamed:@"audio-off.png"];
    UIButton *myMuteButton = [UIButton buttonWithType:UIButtonTypeCustom];
    myMuteButton.bounds = CGRectMake( 0, 0, image.size.width, image.size.height );    
    [myMuteButton setImage:image forState:UIControlStateNormal];
    [myMuteButton addTarget:self action:@selector(mute) forControlEvents:UIControlEventTouchUpInside];    
    UIBarButtonItem *myMuteBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:myMuteButton];   
    navBar.leftBarButtonItem = myMuteBarButtonItem;
    [myMuteBarButtonItem release];
0
ответ дан 14 December 2019 в 13:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: