0

Web ブラウザーのブックマーク ページを作成していますが、新しいオブジェクトを追加するたびに、カスタム セルを作成してからプロパティを設定する必要があるため (2 つのラベルのテキストを設定する必要があります)、方法が必要です。新しく追加されたオブジェクトのみを編集するには...私はインデックスに精通していますが、この問題の解決策を思いつくことができません...たとえば、最初のページをブックマークするときは問題ありませんが、2ページをブックマークすると2ページ細胞はまったく同じです...何かアイデアはありますか?

ここに私のコードがあります:

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"CustomCell";

CustomCell *cell = (CustomCell*)
[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:nil options:nil];
    cell = (CustomCell *) [nib objectAtIndex:0];

}

// Set up the cell...

     NSString *theTitle=[webView stringByEvaluatingJavaScriptFromString:@"document.title"];
NSString *currentURL = webView.request.URL.absoluteString;
      cell.websiteTitle.text = theTitle;
cell.websiteURL.text = currentURL;
universalURL = currentURL;




return cell;
}

セルを設定するときは、最新のセルを指す必要があります!

前もって感謝します!

4

1 に答える 1

1

あなたのアプローチは機能しません。セルは再利用されるため (そして設計が悪いため) 、セルをタイトルと URL のストアとして使用することはできません。テーブル ビューは、表示されている行にセルのみを割り当て、テーブル ビューをスクロールすると別の行にセルを再利用します。

代わりに、タイトルと URL を別のデータ ソースに格納する必要があります。たとえば、NSMutableArray *bookmarks配列内の各項目がNSDictionary「タイトル」キーと「URL」キーを持つ場合です。

テーブルにブックマークを追加するには、配列に新しいエントリを追加reloadDataし、テーブル ビューを呼び出すだけです。

このtableView:cellForRowAtIndexPath:メソッドはbookmarks、行番号を持つ配列を使用してindexPath.row、セルのすべての要素を埋めることができます。

于 2012-08-18T21:53:05.113 に答える