1.首先,假设我们要在一个view A中显示另一个view B,我们要求B包含在A中,并且B不能有黑色边框以及诗透明的。
2.其次我们使用xib形式创建B的viewcontroler。
过程:为了保证B包含在A中,我们必要的是在B中选中view,并且在右侧中把autolayout去掉,如下图
此时可以使用commond+k清空下***
并且在B的viewcontroler中重载viewDidLayoutSubviews()
例如,我是这么写的
override func viewDidLayoutSubviews() {
self.view.frame = CGRectMake(10, 30, 300, 500);
}
这样在A中你需要的地方用presentviewcontrol时你会发现此时B已经在A的中间位置显示了,但是却出现了黑色边缘。为了变成透明我发现在ios8.0之后需要在创建Bview时,给B增加属性(之前的自行百度)。
let mytestview:ViewController_chats = ViewController_chats()
mytestview.modalPresentationStyle = .Custom
之后再进行展示就会发现周围没有黑边了。
最后如果想把Bview变成透明的,可以在创建Bview时修改backgroundcolor(也可以在B的viewcontroler中修改,但是这样更加动态):
mytestview.view.backgroundColor = UIColor(red: 1, green: 1, blue: 1, alpha: 0.5)
综上所属