And*_*rew 13 iphone objective-c uitableview ios
我有一个包含UITableView的UIView.tableview的委托设置为我的UIView,但它从不调用委托方法:
-(id)init {
self = [super init];
if (self) {
self.tableView = [[UITableView alloc] initWithFrame:self.bounds];
self.tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
self.tableView.dataSource = self;
self.tableView.delegate = self;
self.tableView.scrollEnabled = NO;
self.tableView.layer.cornerRadius = PanelCornerRadius;
[self addSubview:self.tableView];
}
return self;
}
#pragma mark - UITableViewDelegate methods
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"height for row");
int height = [self heightForRowAtIndexPath:indexPath];
return height;
}
#pragma mark - UITableViewDataSource methods
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSLog(@"number of rows");
if (self.manager.fetchOperation.dataFetchProblem) {
return 1;
}
int numberOfRows = [self.delegate numberOfSectionsInPanel:self];
return numberOfRows;
}
Run Code Online (Sandbox Code Playgroud)
我已经探索了我能想到的每一个选项,但似乎无法找到问题的根源.
编辑:包括numberOfRowsInSection.它可能会返回0,只有它永远不会有机会,因为"行数"NSLog永远不会被调用.
try*_*lly 19
你能写一下你在cellForRowAtIndexPath:方法上写的代码吗?因为我发现你的代码没有任何问题.
你是从其他ViewController调用你的UIView吗?如果有,怎么样?
我做过类似的事情一次.我在UIView中声明了一个方法,如下所示:
- (void)setUpTableView{
self.tableview.delegate=self;
self.tableview.dataSource=self;
}
Run Code Online (Sandbox Code Playgroud)
然后我从视图控制器调用setUpTableView我添加了这个视图,如下所示:
[self.yourView setUpTableView];
Run Code Online (Sandbox Code Playgroud)
这可能有所帮助.谢谢.
小智 15
我有类似的问题,我的解决方案是因为我没有将部分数量设置为1.
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}
Run Code Online (Sandbox Code Playgroud)
小智 3
你应该这样声明你的观点
@interface MyView : UIView <UITableViewDelegate, UITableViewDataSource>
顺便说一句:我会有一个 ViewController 来“控制”您的视图和表视图,并让 ViewController 成为表视图的委托和数据源。
| 归档时间: |
|
| 查看次数: |
24955 次 |
| 最近记录: |