使用UIView作为按钮

时间:2012-03-07 23:50:25

标签: ios ios5 uiview uibutton

我正在尝试使用我在Storyboard中创建的UIView作为按钮。我假设可以使用UIButton,将类型设置为自定义。但是我无法将子视图添加到故事板中的自定义UIButton。

因此我花了最后一小时通过制作我自己的自定义手势识别器重新实现按钮功能来重新发明轮子。

当然,这不是最好的方法,所以我的问题 - 对于比我更有经验的iOS开发人员 - 是制作自定义按钮的最佳方式是什么?

要明确需要:

  • 使用我创建的UIView作为可击打区域。
  • 能够展示一个 不同的状态取决于当前是否突出显示 (即触地)。
  • 实际点击时执行一些操作。

感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

您可以使用UIButton,将类型设置为自定义,然后以编程方式添加您的子视图...

答案 1 :(得分:0)

替代UIControl的子类。您可以向其添加子视图,它可以响应操作

答案 2 :(得分:0)

为什么要实施自己的GestureRecognizer?我建议使用UIView,以便您可以在界面构建器中添加子视图并添加UITapGestureRecognizer。您甚至可以以图形方式执行此操作,因为您不关心IOS4支持。

答案 3 :(得分:0)

将故事板中的UIView更改为UIControl。然后使用方法
[controlViewName addTarget:self action:@selector(*click handler method*) forControlEvents:UIControlEventTouchDown]; click handler method 是占位符,代表处理程序的方法名称。使用此方法除了更改UIControlEventTouchDown的{​​{1}}和UIControlEventTouchInside以在用户完成点击并分别将其手指拖出视图时调用方法。我用它来做我现在正在做的事情并且效果很好。

在触控时,您需要:突出显示所有子视图 在内部触摸中,您将需要:取消所有子视图的高亮显示并执行segue或执行按钮应执行的任何操作。 在触摸拖动退出中,您需要:取消所有子视图的高亮显示

请参阅LiCheng在this类似SO帖子中的第二个答案。