我的电话看起来像这样:
UIView.transition(with: button, duration: 0.5,
options: .transitionCrossDissolve,
animations: { button.hidden = false },
completion: null)
当我用它来显示一个按钮时,它按预期工作,有一个很好的淡入。当我使用它隐藏(使用button.hidden = true
)时,它在iOS模拟器中再次正常工作,但在设备上 - iPhone或iPad - 它只会消失而不会褪色。
我能找到的唯一显着差异是我的设备运行iOS 10.2,但模拟器只有10.1。 Xcode没有给我下载10.2模拟器的选项。
还有什么我可以错过的吗?我应该使用其他动画选项吗?
值得注意的是,我隐藏和显示的按钮位于导航栏中的UIBarButtonItem
内。
答案 0 :(得分:1)
我遇到了同样的问题,但只是在UIView中使用了标准的UIView。我通过将我隐藏的视图的超视图作为UIView.transition(with: button.superview!, duration: 0.5,
options: .transitionCrossDissolve,
animations: { button.hidden = false },
completion: null)
参数传递来修复我的。我认为重新阅读文档就是你应该如何做到这一点,并且它通过传递有问题的视图起作用的事实可能只是Apple可能在10.2中修复的一个方便的错误,但这只是猜测。
无论如何,使用我所做的修改我的代码来重写OP的代码来说明:
Sub Change_Ticket_Initials()
Dim strReturn As String
strReturn = InputBox("Enter Initials", "Change Ticket Initials")
If strReturn = vbNullString Then Exit Sub 'if "" exit sub
If Len(strReturn) < 1 Or Len(strReturn) > 3 Then
MsgBox "Must Be 1-3 Characters Try Again"
Run "Change_Ticket_Initials"
Else
Control_Sheet_VB.Range("C2").Value = UCase(strReturn)
End If
End Sub
答案 1 :(得分:0)
由于我的按钮位于导航栏中,因此我最终使用了navigationItem.setRightBarButtonItems(buttons, animated: true)
。有了这个,动画在模拟器和设备上都消失了。