tableHeaderView无法正确显示UIView

时间:2012-05-08 23:06:46

标签: iphone objective-c ios xcode cocoa-touch

我正在尝试将带有分页的UIScrollView作为标题添加到我的表中,但不幸的是它没有正确显示。 htableHaderView的大小调整为imagesScrollView的大小,但只有一半显示,其余区域为空白。

- (void)viewDidLoad
{
    [super viewDidLoad];

    ImagesViewController *imagesScrollView = [[ImagesViewController alloc] initWithNibName:@"ImagesViewController" bundle:nil];


    tableView.tableHeaderView = imagesScrollView.view;
    imagesScrollView = nil;

}

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我尝试了以下代码:

ViewController.h

#import <UIKit/UIKit.h>
@interface ViewController : UITableViewController
@end

ViewController.m

#import "ViewController.h"
#import "ImagesViewController.h"
@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    ImagesViewController *imageVC  = [[ImagesViewController alloc] initWithNibName:@"ImagesViewController" bundle:nil];
    [[self tableView] setTableHeaderView:[imageVC view]];
    imageVC = nil;
}
@end

ImagesViewController.h

#import <UIKit/UIKit.h>
@interface ImagesViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIScrollView *ScrollView;
@property (strong, nonatomic) IBOutlet UIView *ViewInScrollView;
@end

ImagesViewController.m

#import "ImagesViewController.h"
@implementation ImagesViewController
@synthesize ScrollView;
@synthesize ViewInScrollView;
- (void)viewDidLoad {
    [super viewDidLoad];
    [[self ViewInScrollView] setFrame:CGRectMake(0, 0, 768 * 2, 400)];
    [[self ViewInScrollView] setBackgroundColor:[UIColor orangeColor]];
    [[self ScrollView] setContentSize:[[self ViewInScrollView] frame].size];
}
@end

ImagesViewController的xib是一个视图,768宽,200高(我制作了一个基于iPad的UITableView单视图应用程序)。其view内部是UIScrollView,设置为占据整个[view frame]区域。然后我在其中加了一个UIView

我的测试给了我一个橙色矩形的标题,我可以像你期望的那样滚动它。这让我相信你可能需要检查Interface Builder中imagesScrollView的震动/支柱。确保所有边距和宽度都是固定/灵活的,以便正确显示。