2

テーブルビュー セルで「左にスワイプ」アクションを実行したときに表示される削除ボタンをカスタマイズしたいと思います。現在、UITableViewCell のサブクラスをセットアップしていますが、表示されている削除ボタンもカスタマイズしたいと考えています。

私の目標は、スワイプ時に 3 つのボタンを配置することです。

各セルで UIScrollview を使用していた別の実装を選択します。

http://www.teehanlax.com/blog/reproducing-the-ios-7-mail-apps-interface/

4

4 に答える 4

4

間に UITableViewCellContentView があるため、受け入れられた回答は iOS 7 では機能しません。したがって、サブビュー ループは次のようになります (古い iOS バージョンもサポートする場合は、現在受け入れられている iOS 6.1 の回答を使用してください)。

        for (UIView *subview in self.subviews) {
            for (UIView *subview2 in subview.subviews) {
                if ([NSStringFromClass([subview2 class]) rangeOfString:@"Delete"].location != NSNotFound) {
                    // Do whatever you want here
                }
            }
        }
于 2013-10-18T12:12:00.627 に答える
3

これはあなたを助けるかもしれません。

- (void)willTransitionToState:(UITableViewCellStateMask)state
    {
        [super willTransitionToState:state];
        if ((state & UITableViewCellStateShowingDeleteConfirmationMask) == UITableViewCellStateShowingDeleteConfirmationMask)
        {
            for (UIView *subview in self.subviews)
            {
                if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellDeleteConfirmationControl"])
                {
                    UIImageView *deleteBtn = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 64, 33)];
                    [deleteBtn setImage:[UIImage imageNamed:@"arrow_left_s11.png"]];
                    [[subview.subviews objectAtIndex:0] addSubview:deleteBtn];
                }
            }
        }
    }

参照元:

UITableView の削除ボタンをカスタマイズする

uitableview のカスタム削除ボタンを作成する

UITableViewセルでの編集時のカスタム削除ボタン

于 2013-09-06T00:26:51.113 に答える
1
-(void)willTransitionToState:(UITableViewCellStateMask)state{
    NSLog(@"EventTableCell willTransitionToState");
    [super willTransitionToState:state];
    if((state & UITableViewCellStateShowingDeleteConfirmationMask) == UITableViewCellStateShowingDeleteConfirmationMask)
    {
        UIImageView *deleteBtn = [[UIImageView alloc]initWithFrame:CGRectMake( 320,0, 228, 66)];
        [deleteBtn setImage:[UIImage imageNamed:@"BtnDeleteRow.png"]];
        [[self.subviews objectAtIndex:0] addSubview:deleteBtn];
        [self recurseAndReplaceSubViewIfDeleteConfirmationControl:self.subviews];
        [self performSelector:@selector(recurseAndReplaceSubViewIfDeleteConfirmationControl:) withObject:self.subviews afterDelay:0];
    }
}
于 2014-02-17T12:19:18.893 に答える