错误的UIScrollView子视图放置

时间:2015-07-18 15:18:21

标签: ios objective-c iphone uiview uiscrollview

我以编程方式创建了我的应用程序的UI,现在我已经坚持了这个问题近两天了。

我有我的MasterViewController,它创建了我的scrollview实例:

CGRect bottomViewFrame = CGRectMake(0,self.view.bounds.size.height-self.view.bounds.size.height/4.6,self.view.frame.size.width,100);
BottomView *bottomView = [[BottomView alloc] initWithFrame:bottomViewFrame];

并在我的ScrollView的initWithFrame:方法中我有:

- (instancetype)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];

    self.backgroundColor = [UIColor blackColor];
    self.contentSize = CGSizeMake(self.bounds.size.width, self.bounds.size.height);
    self.showsVerticalScrollIndicator = NO;
    self.pagingEnabled = YES;

    UIView* test = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
    test.backgroundColor = [UIColor redColor];

    [self addSubview:test];

    return self;
}

有些事情表现不正确...... 首先,正如您所看到的,我将ScrollView的contentSize高度设置为它自己的高度,但我仍然可以在模拟器上执行后滚动。

其次我设置了UIView"测试"原点为(0; 0),但它显示在某些似乎我喜欢的坐标上(0; self.frame.height / 2)。

这是模拟器上的最终结果

enter image description here

有人有想法吗?非常感谢,非常感谢。

1 个答案:

答案 0 :(得分:2)

解决!经过两天的挣扎,我终于得到了答案。 UINavigationController让MainViewController自动设置UIScrollView的子视图插图,你只需插入我的MasterViewController的init方法

self.automaticallyAdjustsScrollViewInsets = NO;

解决问题,让我的观点按照我的意愿放置。