Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改UIScrollview的帧在iOS xcode中不工作_Ios_Objective C_Iphone_Xcode_Uiscrollview - Fatal编程技术网

更改UIScrollview的帧在iOS xcode中不工作

更改UIScrollview的帧在iOS xcode中不工作,ios,objective-c,iphone,xcode,uiscrollview,Ios,Objective C,Iphone,Xcode,Uiscrollview,我不知道我做错了什么 我在IB中拖出UIScrollView,将其连接到UIViewController.h @property (strong, nonatomic) IBOutlet UIScrollView *scrollView; 在UIViewController.m中 - (void)viewDidLoad { [super viewDidLoad]; _scrollView.frame = CGRectMake(0, 200, 300, 500); _sc

我不知道我做错了什么

我在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和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);
}

你用什么方法做这些??“视图加载”??或者其他方法?在viewdidload中。我编辑了我的问题以包括ViewDidLoad sotryboard/Xib文件中视图的初始布局在“ViewDidLayoutSubView”中完成。尝试用这种方法进行这些更改。是的,实际上我只是尝试在ViewWillapar中进行更改,并看到UIScrollView中的所有内容都堆叠在屏幕的左上角。但NSLog仍然显示uiscrollview具有宽度和高度。。它仍然是白色的,而不是应该的灰色。使用Autolayout,您是否为stroyboard中的scrollView提供了约束?