Ios 将photoscroller创建的滚动视图添加到子视图

Ios 将photoscroller创建的滚动视图添加到子视图,ios,objective-c,iphone,ipad,Ios,Objective C,Iphone,Ipad,我试图修改苹果的,使scrollview成为一个子视图,而不是占据整个屏幕的视图。关于如何实现这一点有什么想法吗 - (void)loadView { // Step 1: make the outer paging scroll view CGRect pagingScrollViewFrame = [self frameForPagingScrollView]; pagingScrollView = [[UIScrollView alloc] initWit

我试图修改苹果的,使scrollview成为一个子视图,而不是占据整个屏幕的视图。关于如何实现这一点有什么想法吗

- (void)loadView 
{    
    // Step 1: make the outer paging scroll view
    CGRect pagingScrollViewFrame = [self frameForPagingScrollView];
    pagingScrollView = [[UIScrollView alloc] initWithFrame:pagingScrollViewFrame];
    pagingScrollView.pagingEnabled = YES;
    pagingScrollView.backgroundColor = [UIColor blackColor];
    pagingScrollView.showsVerticalScrollIndicator = NO;
    pagingScrollView.showsHorizontalScrollIndicator = NO;
    pagingScrollView.contentSize = [self contentSizeForPagingScrollView];
    pagingScrollView.delegate = self;

    // When I do this it fails
    [self.view addSubview:pagingScrollView];

    // Step 2: prepare to tile content
    recycledPages = [[NSMutableSet alloc] init];
    visiblePages  = [[NSMutableSet alloc] init];
    [self tilePages];
}

您只需修改scrollview的框架,使其按照您想要的方式定位和调整大小:

这是视图控制器中在示例中设置它的行

pagingScrollView = [[UIScrollView alloc] initWithFrame:pagingScrollViewFrame];
作为示例,这里是一个带有一些硬编码值的示例帧:

CGRect scrollFrame = CGRectMake(100,100,100,100);
pagingScrollView = [[UIScrollView alloc] initWithFrame:scrollFrame];

因此,我发现通过将方法从loadView更改为viewDidLoad,可以将scrollView添加为子视图


我不知道为什么会这样,但确实如此。我很想知道为什么会这样…

是的,我可以更改大小和位置,但是当我尝试将其添加到子视图时(将self.view=pagingScrollView更改为[self.view addSubview:pagingScrollView]),它会因访问错误而崩溃。您应该能够将其添加为子视图而不会出现问题。你从哪里调用这个代码?您可能希望发布更多代码来帮助缩小问题的根源。您可能还希望调试代码,以查看哪个项没有被实例化(导致错误访问)。对此,我很抱歉,我用更改的代码块编辑了我的文章。作为说明,我修改了frameForPagingScrollView,为我提供了一个自定义框架(而不是使用CGRectMake硬编码)