如何实现UIView只显示在屏幕的特定区域(SWIFT)

时间:2015-11-16 14:03:13

标签: ios swift uiview translation

我有我的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])

1 个答案:

答案 0 :(得分:0)

您不必将画面设置两次。最后一行代码是多余的。

要使视图达到您想要的位置,您可以以编程方式将约束设置到视图上。

以下是Apple的文档 - Programmatically Creating Constraints