出现和消失的 UIButton

Posted

技术标签:

【中文标题】出现和消失的 UIButton【英文标题】:Appearing and Disappearing UIButton 【发布时间】:2014-06-16 21:17:06 【问题描述】:

我是 Objective C 和 swift 的新手(我想我们都是 swift 的新手),但我试图让 UIButton 在我的应用程序屏幕上的不同位置出现和消失。到目前为止,这是我在我的一个视图控制器中尝试过的,但它似乎不起作用。

func addButton() 
  var start: CFTimeInterval
  var elapsedTime:CFTimeInterval
  let Button = UIButton()
  let picture = UIImage(named: "picture.png")
  Button.setImage(picture, forState: UIControlState.Normal)
  Button.frame = CGRectMake(0, 142, 106.6, 106.5)
  self.view!.addSubview(Button)
  while (elapsedTime < 1.0) 
      elapsedTime = CACurrentMediaTime() - start
  
  Button.removeFromSuperView()

【问题讨论】:

你应该使用 NSTimer 而不是 while 循环 - 我很确定 while 循环会阻塞你的 UI 线程,因此它永远不会真正呈现到屏幕上 【参考方案1】:

您可以使用方便的 GCD API 进行计时

dispatch_after(dispatch_time_t(1.0), dispatch_get_main_queue(), 
    button.removeFromSuperView()
)

如果它总是同一个按钮,最好创建一个变量或插座,然后回收按钮(你只需通过设置alphahidden属性让它出现和消失。如果是只是应该闪烁,您可以使用基本的CAAnimations。

注意:请养成使用以小写字母开头的变量名的习惯,否则您最终会将它们误认为是类名。

【讨论】:

我明白你在这里做了什么,但是当我将此行添加到我的函数时,它根本不显示按钮 首先注释掉使按钮消失的代码。调试首先添加按钮的代码。然后回去调试移除按钮的代码。

以上是关于出现和消失的 UIButton的主要内容,如果未能解决你的问题,请参考以下文章

ios uitextfield 和按钮转换出现/消失

为啥在软键盘出现和消失时抖动 UI 滞后?

Qt qwidget 瞬间出现和消失

使用淡入淡出动画使组框出现和消失

iOS:导航栏项目消失和重新出现

当 ViewPager 中的片段出现和消失时如何执行一些代码