iOS 11动画大屏幕显示模式
我在显示视频的UIViewController中有一个UITableView。当我向下滚动时,我想设置从大标题到小标题的动画。我目前使用的代码是:iOS 11动画大屏幕显示模式,ios,swift,uitableview,ios11,Ios,Swift,Uitableview,Ios11,我在显示视频的UIViewController中有一个UITableView。当我向下滚动时,我想设置从大标题到小标题的动画。我目前使用的代码是: func scrollViewDidScroll(_ scrollView: UIScrollView) { if #available(iOS 11.0, *) { UIView.animate(withDuration: 0.35, animations: { if scro
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if #available(iOS 11.0, *) {
UIView.animate(withDuration: 0.35, animations: {
if scrollView.contentOffset.y <= 128 {
self.navigationItem.largeTitleDisplayMode = .always
} else {
self.navigationItem.largeTitleDisplayMode = .never
}
})
}
}
func scrollViewDidScroll(scrollView:UIScrollView){
如果可用(iOS 11.0,*){
UIView.animate(持续时间:0.35,动画:{
如果符合UITableViewDelegate,请添加以下代码:
var canTransitionToLarge = false
func scrollViewDidScroll(_ scrollView: UIScrollView) {
func animate(){
self.navigationController?.navigationBar.setNeedsLayout()
self.view.setNeedsLayout()
UIView.animate(withDuration: 0.25, animations: {
self.navigationController?.navigationBar.layoutIfNeeded()
self.view.layoutIfNeeded()
})
}
if canTransitionToLarge && scrollView.contentOffset.y <= 0 {
self.navigationItem.largeTitleDisplayMode = .always
animate()
canTransitionToLarge = false
}
else if !canTransitionToLarge && scrollView.contentOffset.y > 0 {
self.navigationItem.largeTitleDisplayMode = .never
animate()
canTransitionToLarge = true
}
}
如果您符合UITableViewDelegate,请添加以下代码:
var canTransitionToLarge = false
func scrollViewDidScroll(_ scrollView: UIScrollView) {
func animate(){
self.navigationController?.navigationBar.setNeedsLayout()
self.view.setNeedsLayout()
UIView.animate(withDuration: 0.25, animations: {
self.navigationController?.navigationBar.layoutIfNeeded()
self.view.layoutIfNeeded()
})
}
if canTransitionToLarge && scrollView.contentOffset.y <= 0 {
self.navigationItem.largeTitleDisplayMode = .always
animate()
canTransitionToLarge = false
}
else if !canTransitionToLarge && scrollView.contentOffset.y > 0 {
self.navigationItem.largeTitleDisplayMode = .never
animate()
canTransitionToLarge = true
}
}
您不需要这样做。当您滚动时,标题应自动从小变大,反之亦然。但不要这样做。这可能是因为我在UIViewControllery中使用UItableview。在这种情况下,您应该使用UITableViewController,如果您不想使用它,请参阅我的回答。您不需要这样做。标题应更改当您滚动时,会自动从小到大或从小到大,反之亦然。但不会。这可能是因为我在UIViewController中使用了UItableview。对于这种情况,您应该使用UITableViewController,如果您不想使用它,请查看我的答案