我有一个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的最左边或最右边,点击相应的按钮。但是,使用这些自定义按钮,命中目标不会一直延伸到UIToolbar的边缘,而是从两侧插入:
http://skitch.com/andpoul/d1p8g/hit-targets
任何帮助都非常感谢!
答案 0 :(得分:1)
如果您使用的是自定义视图(可能只是使用视图的宽度),则可能会忽略UIBarButtonItem.width。
蹩脚的黑客攻击是让工具栏更宽(因此它会粘在屏幕外)并为背景图像添加透明边缘以进行补偿。这使按钮更靠近屏幕边缘。
另一种方法是使用带有UIButton子视图的UIImageView。
答案 1 :(得分:0)
我认为你必须走的唯一方法就是让按钮更宽(通过从左边添加一个而另一个更改图像来改变图像)并调整尺寸......