ScrollView,视图未显示

Posted

技术标签:

【中文标题】ScrollView,视图未显示【英文标题】:ScrollView, Views not showing up 【发布时间】:2013-10-05 14:24:55 【问题描述】:

滚动视图显示,没有任何可见的视图。视图移动正常,页面控件正常工作。当我更改滚动条背景时,一切正常。没有显示“不同颜色”的视图。不知道出了什么问题。感谢您的帮助

-(void)viewDidLoad     
[super viewDidLoad];

CGRect frame = CGRectMake(0, 215, WIDTH_OF_IPHONE, HEIGHT_OF_SCROLLER);

int numOfPhotos = 6;

scrollViewer = [[UIScrollView alloc] initWithFrame:frame];
scrollViewer.contentSize = CGSizeMake((WIDTH_OF_IPHONE*numOfPhotos), HEIGHT_OF_SCROLLER);
scrollViewer.pagingEnabled = YES;
//scrollViewer.backgroundColor = [UIColor lightGrayColor];
[scrollViewer setDelegate:self];

int i = 0;

while (i < numOfPhotos)

    CGRect frameOfView = CGRectMake((i*320), 215, 320, HEIGHT_OF_SCROLLER);
    UIView *photoFrame = [[UIView alloc] initWithFrame:frameOfView];

    if (i == 0)
        photoFrame.backgroundColor = [UIColor redColor];//colorWithPatternImage:image1];
        NSLog(@"colour was selected");
    else if (i==1)
        photoFrame.backgroundColor = [UIColor blueColor];//colorWithPatternImage:image2];
    else if (i==2)
        photoFrame.backgroundColor = [UIColor purpleColor];//colorWithPatternImage:image3];
    else if (i==3)
        photoFrame.backgroundColor = [UIColor orangeColor];//colorWithPatternImage:image4];
    else if (i==4)
        photoFrame.backgroundColor = [UIColor magentaColor];//colorWithPatternImage:image5];
    else
        photoFrame.backgroundColor = [UIColor greenColor];//colorWithPatternImage:image6];
    

    [scrollViewer addSubview:photoFrame];
    //[photoFrame release];

    photoFrame = NULL;
    i++;

pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, 0, WIDTH_OF_IPHONE, 15)];
pageControl.center = CGPointMake(scrollViewer.center.x, (208+HEIGHT_OF_SCROLLER));

[pageControl setNumberOfPages:numOfPhotos];

[pageControl addTarget:self action:@selector(pageSwiped:) forControlEvents:UIControlEventValueChanged];

[self.view addSubview:scrollViewer];
[self.view addSubview:pageControl];

我的 .H 文件如下所示

@interface HomePage : UIViewController <UIActionSheetDelegate, UIScrollViewDelegate> 

   IBOutlet UIScrollView *scrollViewer;
   UIPageControl *pageControl;
   BOOL pageControlUsed;


@end

【问题讨论】:

你的问题在这里 CGRect frameOfView = CGRectMake((i*320), 215, 320, HEIGHT_OF_SCROLLER);我想你必须让它 CGRect frameOfView = CGRectMake((i*320), 0, 320, HEIGHT_OF_SCROLLER);上班 谢谢,所以如果我在滚动视图上创建一个视图,x 和 y 与滚动视图相关,而不是主视图 :) 谢谢 【参考方案1】:

尝试将 photoFrame 的 y 原点设置为 0,因为它会将其放置在滚动视图的实际框架之下。

如果不是您遇到的问题是您将相框设置为 NULL。如果您使用 ARC,则不必担心,因为垃圾收集器会处理它。

【讨论】:

以上是关于ScrollView,视图未显示的主要内容,如果未能解决你的问题,请参考以下文章

Swift - Parallax Header View - ScrollView 重叠单元格

向 UIScrollView 添加子视图

内部滚动视图( ScrollView / RecyclerView / ListView )视频未播放。

如何使用 AutoLayout (iOS/Xamarin.iOS) 使 ScrollView 适合其内容?

ScrollView 未使用 imageview 更新

解决在ScrollView中套用ListView显示不正常