I am setting the height of cell using heightForRowAtIndexPath: method returning 100. But in cellForRowAtIndexPath method, the cell's frame height is always 44px.
Following is my code.
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 100;
}
- (int) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 10;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
}
[cell setBackgroundColor:[UIColor redColor]];
[cell.contentView setBackgroundColor:[UIColor redColor]];
cell.textLabel.text = [NSString stringWithFormat:@"%d", indexPath.row];
NSLog(@"%f %f", cell.frame.size.height, cell.contentView.frame.size.height);
return cell;
}
The NSLog statement prints "44px 44px".
I am able to get the correct height using this statement
CGFloat height = [tableView heightForRowAtIndexPath:indexPath];
Your Delegate Method will not be called while allocating the cell. initWithStyle
allways returns cells with height of 44 unless you overwrite it in a subclass.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With