相关疑难解决方法(0)

IOS:使用自定义uitableviewcell的动态高度

我是ios开发的新手,到目前为止这是我的问题.我能够通过委托"heightForRowAtIndexPath"动态计算自定义单元格的高度.所以在第一次加载时,每件东西都显示得很好.

我的问题是,一旦我开始滚动,一切都搞砸了.我认为在滚动"heightForRowAtIndexPath"时,不再调用每个单元格来显示屏幕,因此无法计算新的单元格高度.

所以我已经被困在这里一段时间了.我想知道你们中是否有人可以伸出援助之手.先感谢您.

我会将代码发布到相关文件中.这些文件包括自定义单元格h和m文件.以及视图控制器m文件的相关功能.

// ######################################################
// HelpTableViewCell.h
#import <UIKit/UIKit.h>

@interface HelpTableViewCell : UITableViewCell  {
  IBOutlet UILabel *labelName;
  IBOutlet UILabel *labelDescription;

  IBOutlet UIView *viewBackground;
}

@property (nonatomic, retain) UILabel *labelName;
@property (nonatomic, retain) UILabel *labelDescription;

@property (nonatomic, retain) UIView *viewBackground;

@end

// ######################################################
// HelpTableViewCell.m
#import "HelpTableViewCell.h"

@implementation HelpTableViewCell

@synthesize labelName;
@synthesize labelDescription;

@synthesize viewBackground;

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
  self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];

  if (self) {
  }

  return self;
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated  {

  self.labelName.lineBreakMode = UILineBreakModeWordWrap;
  self.labelName.numberOfLines …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uitableview ios4 ios

10
推荐指数
1
解决办法
2万
查看次数

当单元格构造不均匀时,如何计算heightForRowAtIndexPath?

问题 - 如何在UITableViewController的"heightForRowAtIndexPath"方法中最好地计算行的高度,具体如下:

  1. 我正在使用自定义子类UITableViewCell并且子视图的实际大小(例如UILabels)是在运行时计算的,并且取决于诸如用户是否更改了字体大小等内容
  2. 在"heightForRowAtIndexPath"之前,单元格实际上并未准备好,因此您不能依赖于调用特定的自定义单元格即时查询它

我目前唯一能想到的是:1.在你的自定义UITableViewCell子类中创建一个方法来计算UITableViewCell子类中每个子视图(例如UILabel)的高度 - 然后在它的子类中使用它创建实例2.同样在自定义子类中创建一个运行所有UILabel的类方法,调用上述方法,总结高度,从而计算总行高.它必须将数据传递给它(例如每个UILabel中的文本)3.在UITableViewController"heightForRowAtIndexPath"中,你必须从上面的(2)调用"calRowHeight"类型方法,传递标签文本数据.因此,有效地调用自定义单元子类上的类方法,该方法知道如何计算总行高,但它使用的是与单元格所需的逻辑相同的...

有没有比我更容易的方法?

iphone uitableview ios heightforrowatindexpath

5
推荐指数
1
解决办法
1万
查看次数