7

我正在使用UIViewandUIButtons而不是UINavigationBar.

但是UIButtons导航栏上的我的反应不灵敏。

我必须点击几乎中心UIButton才能点击。
如果我点击UIButton.

但是UINavigationBar可以通过点击按钮的边缘来点击正常的按钮。
即使在按钮外部点击,也可以点击它。

相机应用程序上的快门按钮或选项按钮也可以通过点击按钮的边缘或外部来点击。

如何在我的应用程序中实现那些易于点击的按钮?

4

3 回答 3

11

使用图像并创建自定义按钮。设置按钮,使图像不会缩放到按钮视图的大小,而只是居中。扩大按钮的大小,使其大于每一侧的图像。Apple 也通过标签按钮之类的功能做到这一点。

于 2012-06-26T18:31:12.193 回答
10

UIButton有专门为此目的的imageEdgeInsets财产。只需为可触摸区域制作一个与您需要的一样大的 UIButton 框架,然后使用imageEdgeInsets.

于 2012-11-08T14:03:28.110 回答
4

免责声明: 此代码尚未经过测试,但它让您了解如何完成它。

您制作一个按钮(在本例中为 40 像素 x 40 像素),然后向其添加一个较小的背景图像,因此给人的印象是该图像非常“可点击”。

// 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];
于 2012-06-26T19:42:35.367 回答