有没有办法以编程方式更新帧 (Swift)
Is there a way to programmatically update frames (Swift)
是否可以像在界面生成器中那样以编程方式更新框架?我的一些对象因为动画而放错了位置(我想无论如何我都想修复它......)但它让我想起了上述问题
编辑:我进行了一些谷歌搜索并查看了 Whosebug,但没有找到我要找的东西。
我想将某些按钮的框架更新回我在界面构建器中设置的约束。
抱歉,如果这个问题太简单了,但我只是在寻找一个简单的答案:是或否 + 代码行或调用方法。它甚至可能不会出现在我的最终项目中;我只是好奇。
这是一些代码,因为我想这会有所帮助:
@IBAction func optionsButtonPushed(sender: AnyObject) {
UIView.animateWithDuration(2, animations: {
var theFrame = self.optionsMenu.frame
theFrame.size.height += 100
self.optionsMenu.frame = theFrame
})
}
位于我正在滚动的视图中的按钮(从零高度)消失了,我猜是因为动画,所以可能有比我想的更好的方法
(抱歉,这个问题太疯狂了;这是我的第一个问题!)
UIView
有一个名为 frame
的 属性,其类型为 CGRect
。 CGRect
是一个结构。
您可以通过创建新的 CGRect
并将其分配给 属性 来更新它。
CGRect newFrame = CGRect(x:0, y:0, width:100, height:100)
yourView.frame = newFrame
您可以禁用自动布局。从故事板。如果您仍想使用 AutoLayout,请使用 -viewDidLayoutSubviews
方法。
self.yourButton.translatesAutoresizingMaskIntoConstraints = YES;
self.yourButton.frame = CGRectMake(16, 133, 130, 130);
是否可以像在界面生成器中那样以编程方式更新框架?我的一些对象因为动画而放错了位置(我想无论如何我都想修复它......)但它让我想起了上述问题
编辑:我进行了一些谷歌搜索并查看了 Whosebug,但没有找到我要找的东西。 我想将某些按钮的框架更新回我在界面构建器中设置的约束。 抱歉,如果这个问题太简单了,但我只是在寻找一个简单的答案:是或否 + 代码行或调用方法。它甚至可能不会出现在我的最终项目中;我只是好奇。
这是一些代码,因为我想这会有所帮助:
@IBAction func optionsButtonPushed(sender: AnyObject) {
UIView.animateWithDuration(2, animations: {
var theFrame = self.optionsMenu.frame
theFrame.size.height += 100
self.optionsMenu.frame = theFrame
})
}
位于我正在滚动的视图中的按钮(从零高度)消失了,我猜是因为动画,所以可能有比我想的更好的方法 (抱歉,这个问题太疯狂了;这是我的第一个问题!)
UIView
有一个名为 frame
的 属性,其类型为 CGRect
。 CGRect
是一个结构。
您可以通过创建新的 CGRect
并将其分配给 属性 来更新它。
CGRect newFrame = CGRect(x:0, y:0, width:100, height:100)
yourView.frame = newFrame
您可以禁用自动布局。从故事板。如果您仍想使用 AutoLayout,请使用 -viewDidLayoutSubviews
方法。
self.yourButton.translatesAutoresizingMaskIntoConstraints = YES;
self.yourButton.frame = CGRectMake(16, 133, 130, 130);