我正在创建一个非常简单的详细视图,其中包含一些用户可以在顶部翻页的图片,底部有项目名称的一些详细信息。但是我的滚动视图没有翻页到正确的位置,因为:
我的scrollview框架&其子视图的框架设置如下:
override func viewDidLoad() {
super.viewDidLoad()
self.pictures.frame = CGRectMake(0, 0, self.view.frame.width, self.view.frame.height / CGFloat(2))
self.pictures.clipsToBounds = false
let width = pictures.frame.width
let height = pictures.frame.height
/*
let view1 = UIView(frame: CGRectMake(pictures.frame.origin.x, 0, scrollViewWidth, scrollViewHeight))
let view2 = UIView(frame: CGRectMake(pictures.frame.origin.x + scrollViewWidth, 0, scrollViewWidth, scrollViewHeight))
let view3 = UIView(frame: CGRectMake(pictures.frame.origin.x + scrollViewWidth * 2, 0, scrollViewWidth, scrollViewHeight))
let view4 = UIView(frame: CGRectMake(pictures.frame.origin.x + scrollViewWidth * 3, 0, scrollViewWidth, scrollViewHeight))
*/
for index in 0...2 {
let frame = CGRectMake(width * CGFloat(index), 0, width, height)
let view = UIView(frame: frame)
views.append(view)
pictures.addSubview(view)
}
views[0].backgroundColor = UIColor.redColor()
views[1].backgroundColor = UIColor.blueColor()
views[2].backgroundColor = UIColor.orangeColor()
pictures.delegate = self
pictures.contentSize = CGSizeMake(width * CGFloat(views.count), height)
}
有没有人对我如何适应这个有任何建议?我是否错误地实现了我的scrollview?
答案 0 :(得分:0)
问题是您是否尝试访问self.view.frame
函数中的viewDidLoad()
。在它调用视图的那一刻还没有正确布局。视图的框架大小与您在storyboard中指定的大小相同,可能是{0,0,600,600}。
解决方案:您可以将页面初始化代码设置为viewWillAppear
,或者您可以考虑使用自动布局而不是直接操作框架。
答案 1 :(得分:0)
您必须在宽度中添加+20,因为在scrollView中,两个页面之间有一些空间可用。 所以加20它可以解决你的问题。