当我在[tableView numberOfRowsInSection:0]
下面输入if语句时,我收到了EXC错误访问错误。我正在计算heightForRowAtIndexPath中UITableView的tableView numberOfRowsInSection
。
我有以下代码为第一部分的最后一行设置高度
-(CGFloat )tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.section==0) {
NSInteger lastRowIndex = [tableView numberOfRowsInSection:0] - 1;
if (indexPath.row==lastRowIndex) {
return 44.0f;
}else{
return 100;
}
}else{
return 100;
}
}
我收到的错误如下图
我没有找到合适的方法
iOS UITableView numberOfRowsInSection BAD ACCESS
- (int) myNumberOfRowsMethod{
// Here you would usually have some underlying model
return [self.myContactsOrWhateverArray count];
}
答案 0 :(得分:2)
试试这个方法
[self tableView:tableView numberOfRowsInSection:0]
代替[tableView numberOfRowsInSection:0]
。它工作正常。
答案 1 :(得分:1)
将您的代码更新为以下
-(CGFloat )tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.section==0) {
NSInteger lastRowIndex = [self numberOfRowsInSection:indexPath.section] - 1;
if (indexPath.row==lastRowIndex) {
return 44.0f;
}else{
return 100;
}
}else{
return 100;
}
}
答案 2 :(得分:1)
请尝试使用此功能。 制作一个Global NSinteger firstSectionCount; 然后试试这个。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
if (section==0){
firstSectionCount = [ storeArr count];
return [ storeArr count]+1;
}else{
return [ [[itemArr objectAtIndex:section-1] objectForKey:@"itemList"]count];
}
然后,,,,
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section==0) {
if (indexPath.row==firstSectionCount) {
return 44.0f;
}else{
return 100;
}
}
else{
return 100;
}
希望这会对你有帮助......
答案 3 :(得分:0)
试试这段代码:
-(CGFloat )tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.section==0) {
long lastRowIndex = [self.yourArray count]-1;
// other wise use this line
// long lastRowIndex = [self.yourArray lastObject]-1;
if (indexPath.row==lastRowIndex) {
return 44.0f;
}else{
return 100;
}
}else{
return 100;
}
}
因为此numberOfRowsInSection
无效heightForRowAtIndexPath
委托方法。
答案 4 :(得分:0)
试试这个..
-(CGFloat )tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.section==0) {
NSInteger lastRowIndex = yourArray.count - 1;
if (indexPath.row==lastRowIndex) {
return 44.0f;
}else{
return 100;
}
}else{
return 100;
}
}