我有我的viewcontroller。 我在我的Viewcontroller中有我的UIView
@IBOutlet var myview: MyView!
我实现了我的观点:
let halfescreen=self.view.frame.height/2;
let onlyinlowerpart=CGRectMake(0, halfescreen, self.view.frame.width, halfescreen);
myview=MyView(frame: onlyinlowerpart);
myview.frame=CGRectMake(0, halfescreen, self.view.frame.width, halfescreen);
myview.backgroundcolor = UIColor.blueColor();
显示时,我可以在屏幕下方看到蓝屏。太棒了!
当我将myview翻译为向上移动时,它将超出我指定的区域。
如何修复myview仅在指定区域显示。最后,我想通过翻译(CGAffineTransformTranslate())视图和缩放来移动此视图中的内容,但所有内容都应该在屏幕的指定帧中。
有人有提示怎么做/构建这个?是否要指定ViewContainer?
更新 Izaak Prats,感谢帮助并带领我走上了正确的道路,但我仍然没有成功。你能帮忙吗?我使用以下代码添加了约束(顶部),但是当CGAffineTransformTranslate它仍然超过顶部约束时。
view.addSubview(myview);
// Set constraints for the worldmap
let pinTop = NSLayoutConstraint(item: myview, attribute: .Top, relatedBy: .Equal,toItem: self.view, attribute: .Top, multiplier: 1.0, constant: halfescreen)
NSLayoutConstraint.activateConstraints([pinTop])
答案 0 :(得分:0)
您不必将画面设置两次。最后一行代码是多余的。
要使视图达到您想要的位置,您可以以编程方式将约束设置到视图上。
以下是Apple的文档 - Programmatically Creating Constraints