我正在使用UIView
和UIButtons
代替UINavigationBar
制作自定义导航栏。
但是我导航栏上的UIButtons
没有敏感响应。
我必须点击UIButton
的几乎中心点击。
如果我点击UIButton
的边缘,它就不会响应。
但是可以通过点击按钮的边缘来点击普通UINavigationBar
上的按钮
即使点击按钮外部,也可以点按。
相机应用程序上的快门按钮或选项按钮也可以通过点击按钮的边缘或外部来轻触。
如何在我的应用中实现这些易于点击的按钮?
答案 0 :(得分:11)
使用图像并创建自定义按钮。设置按钮,使图像不会缩放到按钮视图的大小,而只是缩放到中心。展开按钮的大小,使其大于每侧的图像。 Apple也可以使用标签按钮等功能。
答案 1 :(得分:10)
UIButton
专门用于此目的imageEdgeInsets
property。只需根据需要为可触摸区域制作一个UIButton框架,然后使用imageEdgeInsets
适当缩放其中的图像。
答案 2 :(得分:4)
免责声明: 此代码尚未经过测试,但它可让您了解如何完成此操作。
你制作一个按钮(在这种情况下为40px x 40px),然后为它添加一个较小的背景图像,因此给人的印象是图像非常“可点击”。
// This image is 20px x 20px (Just an example)
UIImage* backgroundImage = UIImage imageNamed:@"backgroundImage.png"]
// Custom button, remember to add a target method
UIButton* customButton = [UIButton buttonWithType:UIButtonTypeCustom];
customButton.frame = CGRectMake(0.0, 0.0, 40.0, 40.0);
customButton.contentMode = UIViewContentModeCenter;
[customButton setImage:backgroundImage forState:UIControlStateNormal];
UIBarButtonItem* customBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:customButton];
self.navigationItem.rightBarButtonItem = customBarButtonItem;
[customBarButtonItem release];