0

我正在使用情节提要创建一个UIView包含一个包含UIScrollView许多子项的内容。这些子项包括UIImageView我用作背景图像的UIScrollView一个UILabels,我以编程方式填充的一系列,UITableViews以及我使用从一组调用的库类中获得的数据填充的一系列。我想要所有这些,UIScrollView以便用户可以滚动浏览所有信息,而无需显示多个视图。我在这里浏览了很多帖子并使用了很多建议,但无法成功让视图滚动并允许用户查看我试图呈现的所有数据。

这是情节提要的屏幕截图,然后是我的属性检查器的截图UIScrollView

在此处输入图像描述

在此处输入图像描述

我还将提供 .h 和 .m 文件

天气控制器.h

#import <UIKit/UIKit.h>
#import "WeatherParser.h"
#import "WeatherLocation.h"
#import "WeatherImg.h"
#import "WeatherWind.h"
#import "ForcastDay.h"
#import "ForecastItem.h"
#import "Condition.h"
#import "Atmo.h"
#import "Astro.h"
@class WeatherParser;
@class WeatherParserDelegate;
@class WeatherLocation;
@class WeatherImg;
@class WeatherWind;
@class ForcastDay;
@class ForecastItem;
@class Condition;
@class Atmo;
@class Astro;

@interface weatherController : UIViewController <UITableViewDataSource,UITableViewDelegate,WeatherParserDelegate>{
    WeatherParser * _rssParser;
    bool loadingEvents;
}

@property (nonatomic, retain) WeatherParser * rssParser;
@property bool loadingEvents;

@property (retain, nonatomic) IBOutlet UIScrollView *scrollView;
@property (weak, nonatomic) IBOutlet UILabel *cityLabel;
@property (weak, nonatomic) IBOutlet UILabel *state_countryLabel;
@property (weak, nonatomic) IBOutlet UILabel *currHighLabel;
@property (weak, nonatomic) IBOutlet UILabel *currLowLabel;
@property (weak, nonatomic) IBOutlet UILabel *currTempLabel;
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@property (weak, nonatomic) IBOutlet UIImageView *logoImageView;
@property (weak, nonatomic) IBOutlet UILabel *logoLabel;
@property (weak, nonatomic) IBOutlet UITableView *forecastTableView;
@property (weak, nonatomic) IBOutlet UITableView *atmoTableView;
@property (weak, nonatomic) IBOutlet UITableView *windTableView;
@property (weak, nonatomic) IBOutlet UITableView *astroTableView;
@property (weak, nonatomic) IBOutlet UIBarButtonItem *sidebarButton;

@property (nonatomic, retain) NSMutableArray *forecastDays;
@property bool logoSet;

@end

这是我的 weatherController.m 文件。我将只添加一个viewDidLoad方法,它是唯一包含关于我的UIScrollView.

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    _scrollView.delegate = self;    

//    self.scrollView.frame = CGRectMake(0, 0, 320.0f, 480.0f);
    self.scrollView.contentSize =CGSizeMake(320.0F, 480.0F);  //(320, 1210)];
    [_scrollView setScrollEnabled:YES];
}

我将不胜感激任何关于我做错或失踪的帮助。如果我设置我的framecontentSize以下:

self.scrollView.frame = CGRectMake(0, 0, 320.0f, 480.0f);
self.scrollView.contentSize =CGSizeMake(320.0F, 1210.0F);

我确实可以UIScrollView滚动,但背景图像只是框架的大小,并且不会显示其余的子内容UIScrollView。似乎它允许我滚动,但我只能查看在frame.

再次,提前感谢您提供的任何帮助。

4

1 回答 1

1

正如评论所暗示的,将 UITableView 放在 UIScrollView 中通常是个坏主意。不过,我不会对你太苛刻,因为在某个时间和地点,这是一个可以接受的解决方案。我会让你判断这个时间是不是现在。

由于我仍然不完全理解的原因,如果您将整个内容包含在一个与您希望 UIScrollView 滚动一样大的单个 UIView 中,则 UIScrollView 的行为更像您期望的那样。

于 2013-10-19T04:07:47.433 回答