CGRectMake不在swift中工作?
我是斯威夫特的新手。单击fdate按钮时未获取子视图CGRectMake不在swift中工作?,swift,uidatepicker,Swift,Uidatepicker,我是斯威夫特的新手。单击fdate按钮时未获取子视图 @IBAction func FDateButton(sender: AnyObject) { tag = 20 self.view.endEditing(true) DatePicker.hidden = false DatePickerView.hidden = false DatePickerView.frame = CGRectMake(0, UIScreen.mainScreen().boun
@IBAction func FDateButton(sender: AnyObject) {
tag = 20
self.view.endEditing(true)
DatePicker.hidden = false
DatePickerView.hidden = false
DatePickerView.frame = CGRectMake(0, UIScreen.mainScreen().bounds.size.height/4, UIScreen.mainScreen().bounds.size.width, UIScreen.mainScreen().bounds.size.height/2)
DatePickerView.backgroundColor = UIColor(colorLiteralRed: 0.65, green: 0.36, blue: 0.64, alpha: 1.0)
self.view.addSubview(DatePickerView)
}
可能性
- 如果启用了
(默认情况下实际上已启用),则在将Autolayout
设置为translateAuthorizingMasktoConstraints
false之前,将frame设置为任意
将不起作用UIView
- 禁用
,然后设置框架属性。(这不是最好的方法,因为现在使用自动布局
是最好的做法。)Autolayout
- 创建
的出口,并将其连接到要在运行时更改的界面生成器约束NSLayoutConstraint
- 遵循本教程了解如何使用
- 为
DatePickerView
希望这能起作用您可以打印
datePickerView.frame
,并使用Xcode中的可视化视图调试器查看视图图形是否在哪里
我认为从主窗口导出视图大小不是一个好主意。如果用户在iPad上使用拆分模式怎么办?它还会按照你想要的方式工作吗?使用自动布局将是一个更好的选择
此外,每次单击
FDateButton
时都会添加新的子视图 使用CGRect(x:0,y:UIScreen.mainScreen().bounds.size.height/4,width:UIScreen.mainScreen().bounds.size.width,height:UIScreen.mainScreen().bounds.size.height/2)方法代替CGRectMake。更正您的代码,它将正常工作 您在哪里声明了DatePickerView?在我的视图控制器之外,您可以用声明和初始化代码编辑问题吗?您创建了自定义视图或它是视图的IBOutlet?在Swift中,使用CGRect(x:,y:,width:,height:)
而不是CGRectMake
。一切正常,您能告诉我如何创建一个子视图,如果启用了自动布局(默认情况下已启用),该子视图应该位于主视图的中心吗,将框架设置为任何UIView将不起作用。“。。。那不是真的。默认情况下,如果您没有为以编程方式创建的视图关闭translateAutoresizingMaskToConstraints
,当您设置框架时,它将为您创建约束。感谢@Rob让我知道这一点。