我正在尝试手动制作viewcontroller
,而无需按照本教程https://www.youtube.com/watch?v=Hl_Re_KLhcY&t=141s
但是 sideMenuVC (绿色的)的宽度设置正确,我的意思是,sideMenuVC应该是 MainMenuVC 大小的80%。因此,如果我从iPhone 5s更改为iPhoneX,则autolayout
看起来仍然很完美。但这就是我得到的
sideMenuVC应该仅为80%,但在iPhone 5s上看起来像是完整尺寸
在sideMenuVC viewDidLoad
中,我想设置类似的东西
class SideMenuVC: UIViewController {
@IBOutlet var sideMenu: UIView!
override func viewDidLoad() {
super.viewDidLoad()
sideMenu.frame.width = self.view.frame.width / 2
}
}
但是它不起作用,因为它只能获得属性
答案 0 :(得分:1)
要获得所需的输出,最理想的是保持视图控制器的宽度不变,但在内部添加一个普通的view
并附带以下约束条件
superview
,常量值为0 superview
的恒定值为0 superview
,常数为0 superview
,乘数值为4:5 您还需要将UIViewController
的默认view
属性的背景色设置为.clear
。
最后,将新创建的UIViewController
的显示样式设置为Over Current Context
。
当使用UIModalPresentationFullScreen样式呈现视图控制器时,UIKit通常会在过渡动画完成后删除基础视图控制器的视图。您可以通过指定UIModalPresentationOverCurrentContext样式来防止删除这些视图。当显示的视图控制器具有透明区域以使基础内容显示出来时,您可以使用该样式。