1

セルのテキストをテーブルビューの左側と正確に一致させようとしています。tableView.contentInset = UIEdgeInsetsMake(-4、-8,0,0)を設定してみましたが、これはスクロールビューでは正常に機能しますが、tableViewを使用すると、コンテンツはまだ少し右側に表示されます。

コンテンツをテーブルビューの側面と同じ高さにするために必要な正確な数、またはおそらくこれを行うための別の方法を誰かが知っていますか?

これが私が意味することです(青い文字が右側にどのようにずれているか):

ここに画像の説明を入力してください

(^これはデフォルトのcontentInsetです)

4

2 に答える 2

0

テーブルビューのcontentInsetを変更することは、適切なアプローチではありません。セルはすでにテーブルの端にあります。これは、セルの背景色を設定することで確認できます。デフォルトでは、セルtextLabelは端から少し離れた位置にあるように設定されています。セルのフレームを調整してみてくださいtextLabel。これに最適な場所は、tableView:willDisplayCell:forRowAtIndexPath:デリゲートメソッドである可能性が最も高いです。

もう1つのオプションは、セル内の必要な場所にテキストを配置し、デフォルト設定の変更に依存しないカスタムテーブルビューセルです。

于 2012-11-06T21:26:19.963 に答える
0

私にとって最善の方法は、インスタンス UILabel 変数を作成してから、 cellForRow:AtIndexPath: メソッドで UILabel を初期化することです。

フレームは好きなように定義できます。タグ番号を付けます。

準備ができたら、UILabel をサブビューとして cell.contentView に追加します。

// .h file
@interface MyClass
{
    UILabel *lblCellText;
}

// .m file
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *cellID = @"cellID";

    UITableViewCell *cell = [tableView dequeReusableCellWithID:cellID];

    if(cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle.....];

        // ------------------------------------
        // initialise your UILabel here
        // ------------------------------------
        lblCellText = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, tableView.rowHeight)];
        lblCellText.tag = 1;

        [cell.contentView addSubview:lblCellText];

        [lblCellText release];
    }

    // find your UILabel from the pool of dequed UITableViewCells
    lblCellText = (UILabel *)[cell.contentView viewWithTag:1];

    lblCellText.text = "New playlist";


    return cell;
}
于 2012-11-07T04:30:09.327 に答える