У меня есть UIToolbar, который я настроил со своим собственным фоновым изображением. Следовательно, встроенный внешний вид UIBarButtonItem не работает для меня, поэтому я использую изображения, которые уже готовы к показу в панели. Я создаю элемент пользовательской кнопки следующим способом:
+ (UIBarButtonItem *)customWithImage:(UIImage *)image enabled:(BOOL)enabled target:(id)target action:(SEL)selector {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
//I've tried different values for the frame here, but no luck
button.frame = CGRectMake(0, 0, 44, 44);
button.enabled = enabled;
button.showsTouchWhenHighlighted = YES;
[button addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside];
[button setImage:image forState:UIControlStateNormal];
UIBarButtonItem *it = [[[UIBarButtonItem alloc] initWithCustomView:button] autorelease];
//Tried changing this, to no avail
it.width = 32.f;
return it;
У меня есть одна кнопка слева и одна справа, и я пытаюсь сделать так, чтобы, если вы нажмете в крайнем левом или крайнем правом углу панели инструментов, нажата соответствующая кнопка. Однако с этими пользовательскими кнопками целевые объекты не расширяются до краев панели инструментов UIToolbar, а вставляются с боков:
http://skitch.com/andpoul/d1p8g/hit-targets
Любая помощь с благодарностью!