Ios 通过动画和中心更改视图的宽度
我有一个视图,需要通过动画将宽度从100更改为200Ios 通过动画和中心更改视图的宽度,ios,swift,uiviewanimation,Ios,Swift,Uiviewanimation,我有一个视图,需要通过动画将宽度从100更改为200 UIView.animate(withDuration: 5 ,animations: { self.backgroundPlaceHolderView.frame.size.width += 200 }) 运行此代码时,我的视图更改宽度,但我需要从中心更改宽度,但此代码将视图增加到右侧 您应该将背景占位符视图约束在centerX上。它可能定位在左侧。如果您从操纵框架移动到操纵
UIView.animate(withDuration: 5
,animations: {
self.backgroundPlaceHolderView.frame.size.width += 200
})
运行此代码时,我的视图更改宽度,但我需要从中心更改宽度,但此代码将视图增加到右侧
您应该将背景占位符视图约束在centerX上。它可能定位在左侧。如果您从操纵框架移动到操纵约束,我认为这将更容易、更清晰
UIView
ui视图的宽度时,可以执行以下操作:
view.layoutIfNeeded() // always make sure any pending layout changes have happened
widthConstraint.constant = 200
UIView.animate(withDuration: 0.3, animations: {
self.view.layoutIfNeeded()
})
Autolayout将为您处理其余的内容。您的视图水平居中,因此它应该从中心展开。如果您确实需要使用框架进行展开,下面是一个代码片段:
UIView.animate(withDuration: 1, animations: {
self.backgroudPlaceHolderView.frame.origin.x -= 100
self.backgroudPlaceHolderView.frame.size.width += 200
})
你能给我们展示一下动画现在的样子吗?您应该将视图居中对齐,以便从中心设置动画。您还应该减少视图的X位置。@Rakeshashstri updatequestion@RasoulMiri由于您正在使用框架,请尝试sagar的建议。