更改UIScrollview的框架在iOS xcode中不起作用

时间:2015-04-20 06:50:21

标签: 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);
    _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

但我什么也没看到......

我用Google搜索了一些,因为启用了自动布局而发现可能是它?

我猜测自动布局将我的UIScrollView的高度和宽度设置为0。

但我需要将Autolayout用于其他元素。

我做错了什么?

2 个答案:

答案 0 :(得分:2)

试试这个

- (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);
}

答案 1 :(得分:0)

contentSize是滚动视图的滚动区域,框架(或边界)是您设置的框架的大小。您可以想象框架是您在界面上看到的窗口,但contentSize和contentOffset意味着您在滚动视图中的整个区域。