gpt4 book ai didi

ios - 尽管设置了委托(delegate),但永远不会调用 heightForRowAtIndexPath

转载 作者:可可西里 更新时间:2023-11-01 05:01:10 25 4
gpt4 key购买 nike

我已经在 Google 上搜索了一整天,但就是找不到解决方案。

我正在尝试在我的 iOS 应用程序中使用自定义单元格实现表格 View 。我正在使用显示不同图像和标签的自定义单元格。除了单元格对于表格 View 来说太大外,一切都工作正常。我知道我需要实现 heightForRowAtIndexPath 方法,但它从未被调用。

我已经尝试在 nib 文件和代码中的 ShowPostsViewController 中设置 TableView 的委托(delegate),但没有任何帮助。我预计问题可能是数据源已设置但委托(delegate)未设置。我不明白为什么。

到目前为止,我找到的每个解决方案都说委托(delegate)设置不正确。但是,我很确定这是我的情况?!我很感激任何帮助。这是我的代码:

ShowPostsViewController.h

@interface ShowPostsViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
@property (nonatomic, strong) IBOutlet UITableView *postsTableView;

@end

和 ShowPostsViewController.m

@implementation ShowPostsViewController
@synthesize postsTableView;


- (void)viewDidLoad
{
[super viewDidLoad];

self.postsTableView.delegate = self;
self.postsTableView.dataSource = self;
NSLog(@"Delegate set");

[postsTableView beginUpdates];
NSMutableArray *tempArray = [[NSMutableArray alloc] init];
for(int i=0; i<8; i++){
[tempArray addObject: [NSIndexPath indexPathForRow:i inSection:0]];
}
[postsTableView insertRowsAtIndexPaths:tempArray withRowAnimation:UITableViewRowAnimationAutomatic];
NSLog(@"Updates Called");


[postsTableView endUpdates];
[postsTableView reloadData];
}

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

//PostTableViewCell is my custom Cell that I want to display
-(PostTableViewCell*)tableView: (UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
PostTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if(!cell){
cell = [[PostTableViewCell alloc]initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:@"cell"];
}
return cell;
}

//This method is not called for some reason
-(CGFloat)tableview: (UITableView*)tableView heightForRowAtIndexPath: (NSIndexPath*) indexPath{
NSLog(@"Height Method called");
CGFloat returnValue = 1000;
return returnValue;
}

//This method is called
-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView{
NSLog(@"Section Number called");
return 1;
}
@end

我还在 Interface Builder 中将 tableView 链接到 ShowPostsViewController。 http://s7.directupload.net/images/130525/6e373mth.png

感谢大家的大力支持。

最佳答案

你会因为这个错误而自责。您已经实现了方法:

-(CGFloat)tableview: (UITableView*)tableView heightForRowAtIndexPath: (NSIndexPath*) indexPath

但实际的委托(delegate)方法应该是:

-(CGFloat)tableView: (UITableView*)tableView heightForRowAtIndexPath: (NSIndexPath*) indexPath

唯一的区别是tableView中的大写V。您错误地使用了小写字母 v

尽可能多地使用 Xcode 中的代码补全来帮助避免这些类型的错误。

关于ios - 尽管设置了委托(delegate),但永远不会调用 heightForRowAtIndexPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16752515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com