こんにちは私のアプリケーションでは、テーブルビューのセルは編集可能でなければならないという要件があります。つまり、セルの順序を変更することができます。これは、私はreordercontrolを使用しています。この並べ替え制御に加え、右端だけでなくセル全体をカバーする必要があります。このため、私はディスプレイセルの方法で以下の変更を行っています。どのようにボタンは、UIViewの下にあるイベントを受け入れることができますか?
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
for (UIView * view in cell.subviews)
{
if ([NSStringFromClass([view class]) rangeOfString: @"Reorder"].location != NSNotFound)
{
// [view setBackgroundColor:[UIColor redColor]];
UIView* resizedGripView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetMaxX(view.frame), CGRectGetMaxY(view.frame))];
[resizedGripView setBackgroundColor:[UIColor clearColor]];
[resizedGripView addSubview:view];
resizedGripView.backgroundColor=[UIColor clearColor];
resizedGripView.userInteractionEnabled=YES;
[cell.contentView addSubview:resizedGripView];
CGSize sizeDifference = CGSizeMake(resizedGripView.frame.size.width - view.frame.size.width, resizedGripView.frame.size.height - view.frame.size.height);
CGSize transformRatio = CGSizeMake(resizedGripView.frame.size.width/view.frame.size.width, resizedGripView.frame.size.height/view.frame.size.height);
// Original transform
CGAffineTransform transform = CGAffineTransformIdentity;
// Scale custom view so grip will fill entire cell
transform = CGAffineTransformScale(transform, transformRatio.width, transformRatio.height);
// Move custom view so the grip's top left aligns with the cell's top left
transform = CGAffineTransformTranslate(transform, -sizeDifference.width/2.0, -sizeDifference.height/2.0);
[resizedGripView setTransform:transform];
for(UIImageView* cellGrip in view.subviews)
{
if([cellGrip isKindOfClass:[UIImageView class]])
[cellGrip setImage:nil];
}
}
}
}
私が使用しているセルはカスタムセルであり、セルは以下のようになります。
iは表示セル方式の変更の上に行った後。右端だけでなく、どこからでもセル上のセルを並べ替えることができます。表示されているように、この変更後に機能していないボタンをセル上に削除しているのは、ボタン上でも1つのビューがセルに追加されているためです。セルで利用可能なコンポーネントは、イベントを受け入れる必要があります。私を助けてください。
こんにちはmilanご返信ありがとうございます。しかし、それは動作しません:( –
こんにちはミランは大いに助けてくれてありがとう私はそれが多くのおかげで仕事をすることができます –
それは働いて嬉しい:) –