2013-10-18 98 views
0

我正在使用故事板创建一个UIView,其中包含UIScrollView,其中有许多子项目。这些子项目包括我用作UIScrollView的背景图像的UIImageView,以编程方式填充的一系列UILabels以及我用从调用的库集类获得的数据填充的一系列UITableViews。我想在我的UIScrollView中使用所有这些,这样用户就可以滚动浏览所有信息,而不必显示多个视图。我在这里浏览了大量的帖子,并使用了很多建议,但一直无法成功地进行视图滚动,并允许用户看到我试图呈现的所有数据。uiview中的uiscrollview不滚动

这里的故事板的屏幕截图,然后属性检查器的一个镜头我UIScrollView

enter image description here

enter image description here

我还将提供h和.m文件

weatherController.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内可查看的内容。

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

+0

你为什么把tableViews放在scrollViews中? – paulrehkugler

+0

@paulrehkugler无论tableViews是否被使用,它都是一种显示信息的简单高效的方式,可以像时尚一样显示在表格中。此外,表格只有3-5行长。他们不大,不会占用太多空间。 – shadonar

回答

1

正如评论所暗示的,在UIScrollView中放置UITableView通常是一个坏主意。尽管如此,我也不会太难,因为有一段时间和地点它是可以接受的解决方案。如果现在是时候,我会让你判断。

由于我仍然不完全理解的原因,如果您将整个内容放入单个UIView中,并且UIScrollView需要滚动,UIScrollView的行为会更像您所期望的。

+0

把我所有的内容放到'UIView'中,然后把'UIView'放到我的'UIScrollView'中解决了我遇到的所有麻烦。我还会在建议的'UIScrollView'里面加入'UITableView',并认真考虑一下。非常感谢你。 – shadonar