テーブルビューとカスタムセルに問題があります。iPhone - TextForceのテキストを設定するときのheightForRowAtIndexPathスクロールの問題
私は次のコードを持っている:
- (void)viewDidLoad {
[super viewDidLoad];
}
// =================================================================================================
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
// =================================================================================================
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 1;
}
// =================================================================================================
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"MyCustomCell";
MyCustomCell *cell = (MyCustomCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
UIViewController *c = [[UIViewController alloc] initWithNibName:CellIdentifier bundle:nil];
cell = (MyCustomCell*)c.view;
[c release];
}
return cell;
}
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
MyCustomCell* theCell = (MyCustomCell*)cell;
theCell.theTextView.text = @"Label My Label";
}
// =================================================================================================
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 100; // -- In fact it's dynamic
}
そのコードを使用して、私はシミュレータ(iOSの4.2)の奇妙な行動を持っています。 私はただ1つのセル(グループ化されたテーブルビュー)を持っています。リストをスクロールして画面の一番上でセルを消してから、それを解放するとスムーズにスクロールするのではなく、まったくスクロールしていないかのように画面に突然表示されます私のTextViewの最上部までは少しずつ(約25px)、上に。
Cell.theTextView.text = @ "Label My Label"を削除またはコメントした場合。リストがいつものように機能することに問題はありません。セルが消滅しないように、私は少し上にスクロールするだけで問題はありません。多くの行があり、最初のセルを上に移動させると問題は同じです。
TextViewはUITableCellViewの内部にあり、textviewはtexteを1行のテキストとして表示するのに十分な大きさです。
問題がどこで確認できますか?
追加情報が必要な場合や、回答がない場合は、他の人にこの質問に関する回答がまだないことを知らせるためにコメントしてください。
ありがとうございました。
多分、[c release]を[c autorelease]に置き換えてください。 – Felix
@ phix23:試してみるつもりですが、それはデフォルトのコードです... – Oliver
@ phix23:試しました。これは何も変わらない。 – Oliver