ios - TouchDown 上的自定义 UIButton

标签 ios swift uiview uibutton

我有兴趣制作一个自定义 UIButton,当它被按住 X 秒时会触发一个自定义事件。我希望按钮周围有一个边框,因为它被按住以指示它正在做某事,当它是一个完整的边框时它被执行。

我的问题是,实现它的最佳方法是什么?我应该查看 UIView 还是 UIButton?

我找到了这个 tutorial series ,但是它显示了如何绘制按钮,但没有创建您可以定义触发时间的自定义事件。

我之前在一些应用程序中看到过类似的按钮,例如 SnapChat,我只是想知道它是如何实现的。

感谢任何帮助,

干杯

最佳答案

您的 UIButton 位于 UIView 中,而该按钮是 UIView 的子类。当您按下按钮时,它应该连接到一个 IBAction。当调用 IBAction 时,您需要启动一个计时器,并在按钮仍被按住时开始为您需要的任何更改设置动画。如果用户在该计时器完成之前释放按钮,您可能会取消您正在做的任何事情。如果用户继续按住按钮,您将继续动画。请记住,按下按钮时调用 IBAction 的一般方法是在用户释放(抬起手指)时调用 IBAction。在您的情况下,您需要在用户点击按钮后以及引发该按钮之前立即调用该事件。您还需要在计时器运行时跟踪用户的手指是否仍在按钮内部或外部。如果用户将手指从按钮上滑开,您可能需要使计时器无效并停止任何按钮动画。

关于ios - TouchDown 上的自定义 UIButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34215577/

相关文章:

ios - UIPickerView 在外部点击时滚动到最后

ios - 将大型数据集导入核心数据,在 Swift 中建立关系

ios - 如何使用 Swift 对数组数组(按变量名称)进行排序?

iphone - 应该使用 NIB 或 iPhone 中的代码创建 View 吗?

ios - UIView 中的中心标签具有状态栏高度的 y 偏移量

objective-c - CABasicAnimation 完成后重置

ios - 禁用 uibutton 的背景

ios - iOS 的自定义 slider 曲线

iPhone xcode - 带有标签栏 Controller 和多 TableView Controller 的事件指示器

swift - KeyedDecodingContainer 解码内部 Decodable 对象