私はcellForRowAtIndexPathメソッドの内部にUILabelを設定しています。ユーザーがテキストを変更すると、ラベルが変更されます。しかし、それは無しではなく、変わらない。UILabelへのアクセスがありません
@property UILabel *myLabel;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
self.myLabel = [[UILabel alloc] initWithFrame:CGRectMake(5, 0, textView.frame.size.width, 37)];
self.myLabel.text = @"Old Text";
}
- (void)textViewDidChange:(UITextView *)textView {
self.myLabel.textColor = [UIColor redColor];
self.myLabel.text = @"New Text";
}
私は、一部の人がメインスレッドのUILabelを変更しているが、それは私にとっては役に立たない解決策を見つけました。
dispatch_async(dispatch_get_main_queue(), ^{
// Do in main thread
});
投稿したコードが動作する可能性があります。あなたの 'cellForRowAtIndexPath'は、セルのデキューや新しいセルの作成ではなく、セルを返しません。作成したラベルはセルに添付されません。ヘルプが必要な場合は、 'cellForRowAtIndexPath'メソッド全体と、使用している' self.myLabel'プロパティに関する情報を投稿してください。 –
あなたは新しいセルを作成していません。 cellForRowAtIndexPathが呼び出されるたびに、ラベルが再度初期化され、「古いテキスト」が再度割り当てられます。 –