为什么我的 UIScrollView 的 contentSize 没有改变?
Why does the contentSize of my UIScrollView not change?
我正在尝试创建一个包含不同设置的 UIScrollView
。虽然我将 UIScrollView 连接到我的 ViewController 并以编程方式更改了内容大小,但 UIScrollView
仅水平滚动,这不是它应该的方式(它应该仅垂直滚动)。这是我用来定义 UIScrollView 内容大小的内容:
self.scrollView.contentSize = CGSize(width: self.view.bounds.width, height: 1400)
另一件重要的事情是,我将 View controller 模拟大小设置为自由形式,宽度为 375,高度为 1000。
我已经想了一段时间了,但我找不到我做错了什么。如果您知道这是什么原因,我将不胜感激。
提前致谢。
func viewDidLayoutSubviews() {
self.scrollView.contentSize = CGSize(width: self.view.bounds.width, height: 1400)
}
UIScrollview contentSize 动态调整(取决于子视图框架)
Swift:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
DispatchQueue.main.async {
var contentRect = CGRect.zero
for view in self.scrollView.subviews {
contentRect = contentRect.union(view.frame)
}
self.scrollView.contentSize = contentRect.size
}
}
Objective C:
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
dispatch_async(dispatch_get_main_queue(), ^ {
CGRect contentRect = CGRectZero;
for(UIView *view in scrollView.subviews)
contentRect = CGRectUnion(contentRect,view.frame);
scrollView.contentSize = contentRect.size;
});
}
我正在尝试创建一个包含不同设置的 UIScrollView
。虽然我将 UIScrollView 连接到我的 ViewController 并以编程方式更改了内容大小,但 UIScrollView
仅水平滚动,这不是它应该的方式(它应该仅垂直滚动)。这是我用来定义 UIScrollView 内容大小的内容:
self.scrollView.contentSize = CGSize(width: self.view.bounds.width, height: 1400)
另一件重要的事情是,我将 View controller 模拟大小设置为自由形式,宽度为 375,高度为 1000。
我已经想了一段时间了,但我找不到我做错了什么。如果您知道这是什么原因,我将不胜感激。
提前致谢。
func viewDidLayoutSubviews() {
self.scrollView.contentSize = CGSize(width: self.view.bounds.width, height: 1400)
}
UIScrollview contentSize 动态调整(取决于子视图框架)
Swift:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
DispatchQueue.main.async {
var contentRect = CGRect.zero
for view in self.scrollView.subviews {
contentRect = contentRect.union(view.frame)
}
self.scrollView.contentSize = contentRect.size
}
}
Objective C:
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
dispatch_async(dispatch_get_main_queue(), ^ {
CGRect contentRect = CGRectZero;
for(UIView *view in scrollView.subviews)
contentRect = CGRectUnion(contentRect,view.frame);
scrollView.contentSize = contentRect.size;
});
}