【问题标题】:How to have a custom UIButton respond to taps only on nontransparent parts?如何让自定义 UIButton 仅响应不透明部分的点击?
【发布时间】:2011-01-31 15:34:41
【问题描述】:

我有一个 UIButton,它的类型是自定义的,用 png 文件表示,其中一部分是透明的。

当然,当且仅当点击非透明(=可见)部分时,我希望我的按钮激活 touchUpInside 事件。但是当我触摸透明部分时我也会得到事件,这是不可接受的。

我怎样才能让我的按钮只知道它的可见部分?

【问题讨论】:

    标签: iphone-sdk-3.0 uibutton transparency


    【解决方案1】:

    将您的图像分成两部分。一个是按钮(可点击部分),一个是背景。仅为可点击区域设置按钮图像。将 UIButton 放在带有背景的 UIImageView 的顶部。您可以从 UIButton 继承来创建自己的控件,即上面的 UIButtonWithBackground 控件,然后在按钮更改状态时覆盖状态函数以更改背景状态。

    【讨论】:

    • 抱歉,可点击区域不是矩形。假设它是一个圆圈。我只想点击圆圈来触发事件,而不是在框架内而是在圆圈外。
    • 这有点困难。我认为 UIButton 不会为您执行此操作。但是,您可以将显示的图像加载到 UIImage 中,当用户完成触摸时,您可以访问相应像素的 UIImage 的 alpha 值以确定它是否可见。你可以从 UIImageView 固有并观察触摸事件来解决这个问题。
    • “访问相应像素的 UIImage 的 alpha 值以确定它是否可见”,您是如何做到的?你能给我介绍一些样品吗?
    • 这会告诉你怎么做。 stackoverflow.com/questions/448125/…
    猜你喜欢
    • 2011-08-10
    • 1970-01-01
    • 2011-06-15
    • 2013-06-26
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    • 2011-09-04
    相关资源
    最近更新 更多