0

すべて、私はUITableviewを使用しており、編集/削除機能を実装しようとしています。

この行を呼び出すと。

  [tblStoreAvail setEditing:TRUE animated:TRUE];

セルのコンテンツが画面からはみ出します。

これらの関数は呼び出されません。

- (void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath

- (void)tableView:(UITableView *)tableView didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath

UITableView セルのコンテンツが画面外に出る

4

2 に答える 2

1

custuomTableViewCellを使用している場合は、ラベルに必要なフレームを使用して次のメソッドを実装します。

- (void)willTransitionToState:(UITableViewCellStateMask)state
{
    [super willTransitionToState:state]; 
if(state == UITableViewCellStateDefaultMask)
    {
        [self.lblLocation setFrame:CGRectMake(13,22,302,21)];
    }
    else if(state == UITableViewCellStateShowingDeleteConfirmationMask)
    {
        [self.lblLocation setFrame:CGRectMake(13,22,245,21)]; 
    }
    else if(state == UITableViewCellStateShowingEditControlMask)
    {
        [self.lblLocation setFrame:CGRectMake(13,22,245,21)]; 
    }
    else
    {
        [self.lblLocation setFrame:CGRectMake(13,22,210,21)];  
    }
}

デフォルトのTableViewCellを使用している場合は、必ずtableViewのデリゲートを設定し、以下のようにしてください。

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
 yourCustomCell *cell = (yourCustomCell *)[tableView cellForRowAtIndexPath:indexPath];
[cell.lblLocation setFrame:CGRectMake(13,22,302,21)];
    return  YES;
}
于 2012-10-03T07:42:34.140 に答える
0

2 つの問題が発生しています、タイムール。

delegate1)テーブルの " " を、これらのデリゲート メソッドを保持するオブジェクト (おそらくビュー コントローラー)に設定する必要があります。これは、プログラムによって、または XIB / ストーリーボードの接続を介して行うことができます。

2) カスタム セルを使用している場合は、フォント サイズを調整して、表示するすべてのデータを保持する必要があります。

カスタム UITableViewCell オブジェクトを使用してテーブルにデータを表示していない場合は、それらを使用して、実際に表示したい書式を取得できるようにしてください。

于 2012-10-03T07:35:52.770 に答える