UiView.animateWithDuration 没有动画 Swift
UiView.animateWithDuration Not Animating Swift
我正在尝试使用以下代码为搜索栏设置动画 show/hide(搜索栏应从左侧开始并在 1-2 秒内扩展到右侧)。但是,它没有动画,无论我放置多少时间,searchBar 都会立即显示。我注意到以下内容:
- 持续时间不受尊重
- 连延迟都不尊重
动画没有出现。组件立即显示
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
//code to get selected value...
//Hide the collection view and show search bar
UIView.animateWithDuration(10.0,
delay: 0.0,
options: UIViewAnimationOptions.TransitionCrossDissolve,
animations: {
self.searchBar.hidden = false
self.searchBar.frame = CGRectMake(0, 0, 300, 44) //This doesn't work either
},
completion: { (finished: Bool) in
return true
})
}
我正在使用 Xcode 7、iOS 8 和 Swift 2.0。我见过其他解决方案,但其中 none 对我有用。请帮忙...
更新:它适用于以下代码。但是,它使用了 UIViewAnimationOptionCurveEaseInOut
和 TransitionNone
的默认动画选项
UIView.animateWithDuration(0.7,
animations: {
self.searchBar.alpha = 1.0
self.searchBarRect.origin.x = self.searchBarRect.origin.x + 200
self.searchBar.frame = self.searchBarRect
},
completion: { (finished: Bool) in
return true
})
在 animateWithDuration 之前,将 XPosition 设置为 -200,将 YPosition 设置为 -200。
正如 Daniel 建议的那样,您还需要将 alpha 更改为 1.0 以外的值才能看到它 "fade in"。
您使用的是自动版式吗?如果是,您可能希望为约束而不是框架设置动画。
最后,您确定已正确连接搜索栏吗?
编辑:PS,我会将持续时间保持在 3.0 或 5.0 左右。 10.0 将永远持续下去,并且可能会让您认为它没有做任何事情,因为它需要这么长时间。将其设置为 3.0 或 5.0(最大)仅用于测试,然后降低到您想要的位置。
我正在尝试使用以下代码为搜索栏设置动画 show/hide(搜索栏应从左侧开始并在 1-2 秒内扩展到右侧)。但是,它没有动画,无论我放置多少时间,searchBar 都会立即显示。我注意到以下内容:
- 持续时间不受尊重
- 连延迟都不尊重
动画没有出现。组件立即显示
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { //code to get selected value... //Hide the collection view and show search bar UIView.animateWithDuration(10.0, delay: 0.0, options: UIViewAnimationOptions.TransitionCrossDissolve, animations: { self.searchBar.hidden = false self.searchBar.frame = CGRectMake(0, 0, 300, 44) //This doesn't work either }, completion: { (finished: Bool) in return true }) }
我正在使用 Xcode 7、iOS 8 和 Swift 2.0。我见过其他解决方案,但其中 none 对我有用。请帮忙...
更新:它适用于以下代码。但是,它使用了 UIViewAnimationOptionCurveEaseInOut
和 TransitionNone
UIView.animateWithDuration(0.7,
animations: {
self.searchBar.alpha = 1.0
self.searchBarRect.origin.x = self.searchBarRect.origin.x + 200
self.searchBar.frame = self.searchBarRect
},
completion: { (finished: Bool) in
return true
})
在 animateWithDuration 之前,将 XPosition 设置为 -200,将 YPosition 设置为 -200。
正如 Daniel 建议的那样,您还需要将 alpha 更改为 1.0 以外的值才能看到它 "fade in"。
您使用的是自动版式吗?如果是,您可能希望为约束而不是框架设置动画。
最后,您确定已正确连接搜索栏吗?
编辑:PS,我会将持续时间保持在 3.0 或 5.0 左右。 10.0 将永远持续下去,并且可能会让您认为它没有做任何事情,因为它需要这么长时间。将其设置为 3.0 或 5.0(最大)仅用于测试,然后降低到您想要的位置。