【问题标题】:Is there a way to make the tappable area for the UIBarButtonItem as 44x44?有没有办法将 UIBarButtonItem 的可点击区域设为 44x44?
【发布时间】:2012-03-14 16:38:43
【问题描述】:

根据 HIG,可点击按钮的大小应为 44x44。现在我有以下内容:

UIButton * stop = [UIButton buttonWithType:UIButtonTypeCustom];

        [stop setSize:CGSizeMake(15, 18)];


    [stop setBackgroundImage:[UIImage imageNamed:@"stop-gray.png"] forState:UIControlStateNormal];
    [stop addTarget:self action:@selector(stopPage:) forControlEvents:UIControlEventTouchUpInside];
    stopButton_ = [[UIBarButtonItem alloc] initWithCustomView:stop];

UIBarButtonItem 将被放置在 iphone 的 UIToolbar 中。当您注意到图像的大小小于 15、18 时。有没有办法将 UIBarButtonItem 的可点击区域设为 44x44?或者我是否必须创建一个具有空白空间的新图标,以便大小为 44x44,iOS 世界中的最佳做法是什么?

【问题讨论】:

    标签: iphone objective-c ios ipad


    【解决方案1】:

    为什么要使用自定义视图?如果您只想要按钮上的自定义图像,请使用-[UIBarButtonItem initWithImage:style:target:action:],您将获得正确的可点击区域和标准系统行为。

    如果您确实需要自定义视图,则无需更改图像以留下空白空间...只需设置 contentHorizontalAlignmentcontentVerticalAlignment 以便图像居中而不是填充视图,然后根据需要调整视图大小。

    【讨论】:

    • 问题是我的图像颜色是灰色的,当我这样做时,背面是白色的
    • 您的问题始于 HIG 推荐... HIG also says 工具栏图标应该是白色的。如果您将图标变灰以表示它现在无法使用,为什么不使用 UIBarButtonItem 上的 enabled 属性?
    • 这是我为它准备的自定义灰色
    • 而且它没有被使用,因为它被禁用了..它只是不能使用
    【解决方案2】:

    我认为带有透明背景和内部较小图像的 44x44 图像是最简单的方法。

    【讨论】:

    • @rickster:为什么你认为对齐更好?
    • 不一定更好——主要是我指出了这一点,因为 OP 询问您是否必须创建一个更大的空白空间图像,或者是否有其他方法。但是,至少有一个支持使用对齐的论点:用透明图像填充的大图像是一个(可能是微不足道的)更大的文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多