我正在使用故事板创建一个UIView
,其中包含一个UIScrollView
,其中包含许多子项。这些子项目包含UIImageView
我用作UIScrollView
的背景图片,一系列UILabels
以编程方式填充,以及一系列UITableViews
我填充从一组被调用的库类中获取的数据。我希望在我的UIScrollView
中完成所有这些操作,因此用户可以滚动浏览所有信息,而无需显示多个视图。我在这里浏览了很多帖子并使用了很多建议,但是无法成功地进行视图滚动并允许用户查看我试图呈现的所有数据。
这是故事板的屏幕截图,然后是我的UIScrollView
我还会提供.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];
}
我很感激任何关于它是什么的帮助我要么做错了,要么失踪了。如果我将frame
和contentSize
设置为以下内容:
self.scrollView.frame = CGRectMake(0, 0, 320.0f, 480.0f);
self.scrollView.contentSize =CGSizeMake(320.0F, 1210.0F);
我确实要让UIScrollView
滚动,但背景的图像只是框架的大小,并且UIScrollView
上的其他子内容都没有显示。它似乎允许我滚动,但我只能查看frame
内可见的内容。
再次感谢您提供的任何帮助。
答案 0 :(得分:1)
正如评论所暗示的那样,在UIScrollView中放置UITableView通常是个坏主意。不过,我对你不会太苛刻,因为有一个时间和地点是可以接受的解决方案。我会让你判断这个时间是否现在。
由于我仍然不完全理解的原因,如果您将整个内容放在一个UIView中,UIScrollView的行为就像您希望UIScrollView滚动一样大。