0

我的表格视图标题有一个自定义视图

UIView *headerTableview_;    
@property (nonatomic, retain) IBOutlet UIView *headerTableview;

我已将它连接到 xib 文件。

然后在 .m 文件中,

@synthesize headerTableview = headerTableview_;

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
  return headerTableview_.frame.size.height;
}

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
  return headerTableview_;
}

然后,我尝试运行它,在 iOS 6 中它显示得很好,但在 iOS 4.3 中,它根本不显示。

可能是什么问题呢?任何人都知道如何解决这个奇怪的问题?谢谢!

4

2 回答 2

0

创建一个名为 HeaderTableview 的新类文件。查看在 IB 中分配时是否正确初始化。

//.h
@class HeaderTableview;

@interface ViewController : UIViewController

@property (nonatomic, retain) IBOutlet HeaderTableview *headerTableview;

//.m
@synthesize headerTableview = _headerTableview;

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
    return _headerTableview.frame.size.height;
}
于 2012-12-05T16:29:51.153 回答
0

在您的 .h 文件中

@interface testViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
{

UITableView *tableView;
}
@property (retain, nonatomic) IBOutlet UIView *testView;
@end

在您的 .m 文件中

@implementation testViewController

@synthesize testView;
- (void)viewDidLoad
{
[super viewDidLoad];

tableView = [[UITableView alloc]initWithFrame:self.view.frame style:UITableViewStylePlain];
tableView.delegate = self;
tableView.dataSource =self;
[self.view addSubview:tableView];
[self.view bringSubviewToFront:tableView];
// Do any additional setup after loading the view, typically from a nib.
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return testView.frame.size.height;
}

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
return testView;
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 2;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return 3;

}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *CellIdentifier = @"Products";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];}
//UIImage *currentTweet = [[xmlParser tweets] objectAtIndex:1];
cell.textLabel.text= @"text label";
cell.detailTextLabel.text=@"detailTextLabel";

return cell;}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

- (void)dealloc {
[testView release];
[super dealloc];
}
@end

附上模拟器iOS4.3.2的o/p图片

于 2012-12-05T16:32:28.270 回答