更改 UIScrollview 的框架在 iOS xcode 中不起作用
changing frame of UIScrollview not working in iOS xcode
我不知道我做错了什么。
我在IB中拖出UIScrollView,连接到UIViewController.h
@property (strong, nonatomic) IBOutlet UIScrollView *scrollView;
在UIViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
_scrollView.frame = CGRectMake(0, 200, 300, 500);
_scrollView.contentSize = CGSizeMake(300, 600);
_scrollView.backgroundColor = [UIColor grayColor];
NSLog(@"x-pos:%f y-pos:%f width:%f height:%f of uiscrollview", _scrollview.frame.origin.x, _scrollview.frame.origin.y, _scrollview.frame.size.width, _scrollview.frame.size.height);
}
我得到 NSLog :
x-pos:0.000000 y-pos:200.000000 width:300.000000 height:500.000000 of uiscrollview
但是我什么也没看到...
我用谷歌搜索了一下,发现可能是因为启用了自动布局?
我猜自动布局将我的 UIScrollView 的高度和宽度设置为 0。
但我需要为其他元素使用自动布局。
我做错了什么?
contentSize是滚动视图的滚动区域,frame(或bounds)是你设置的frame的大小。您可以想象框架是您在界面上看到的 window,但 contentSize 和 contentOffset 表示滚动视图中的整个区域。
试试这个
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
_scrollView.frame = CGRectMake(0, 200, 300, 500);
_scrollView.contentSize = CGSizeMake(300, 600);
_scrollView.backgroundColor = [UIColor grayColor];
NSLog(@"x-pos:%f y-pos:%f width:%f height:%f of uiscrollview", _scrollview.frame.origin.x, _scrollview.frame.origin.y, _scrollview.frame.size.width, _scrollview.frame.size.height);
}
我不知道我做错了什么。
我在IB中拖出UIScrollView,连接到UIViewController.h
@property (strong, nonatomic) IBOutlet UIScrollView *scrollView;
在UIViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
_scrollView.frame = CGRectMake(0, 200, 300, 500);
_scrollView.contentSize = CGSizeMake(300, 600);
_scrollView.backgroundColor = [UIColor grayColor];
NSLog(@"x-pos:%f y-pos:%f width:%f height:%f of uiscrollview", _scrollview.frame.origin.x, _scrollview.frame.origin.y, _scrollview.frame.size.width, _scrollview.frame.size.height);
}
我得到 NSLog :
x-pos:0.000000 y-pos:200.000000 width:300.000000 height:500.000000 of uiscrollview
但是我什么也没看到...
我用谷歌搜索了一下,发现可能是因为启用了自动布局?
我猜自动布局将我的 UIScrollView 的高度和宽度设置为 0。
但我需要为其他元素使用自动布局。
我做错了什么?
contentSize是滚动视图的滚动区域,frame(或bounds)是你设置的frame的大小。您可以想象框架是您在界面上看到的 window,但 contentSize 和 contentOffset 表示滚动视图中的整个区域。
试试这个
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
_scrollView.frame = CGRectMake(0, 200, 300, 500);
_scrollView.contentSize = CGSizeMake(300, 600);
_scrollView.backgroundColor = [UIColor grayColor];
NSLog(@"x-pos:%f y-pos:%f width:%f height:%f of uiscrollview", _scrollview.frame.origin.x, _scrollview.frame.origin.y, _scrollview.frame.size.width, _scrollview.frame.size.height);
}