そのボタンのドラッグ時にUITableViewのカスタムセルにUIButtonがあります。最初はセルの右端にあるカスタムセルにあるセルで別のビューを開く必要があります...
- (UITableViewCell *)tableView:(UITableView *)_tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
RecentCell *cell = (RecentCell*)[_tableView dequeueReusableCellWithIdentifier: [NSString stringWithFormat:@"%d-%d",indexPath.section,indexPath.row]];
if (cell == nil) {
cell = [[[NSBundle mainBundle] loadNibNamed:@"RecentCell" owner:self options:nil] lastObject];
}
[cell.TestButton addTarget:self action:@selector(ViewMovedTouchDragInside:withEvent:) forControlEvents:UIControlEventTouchDragInside];
return cell;
}
そして、このメソッドはボタンがドラッグされたときに呼び出されます
- (IBAction) ViewMovedTouchDragInside:(id) sender withEvent:(UIEvent *) event
{
UIControl *control = sender;
UITouch *t = [[event allTouches] anyObject];
CGPoint pPrev = [t previousLocationInView:control];
CGPoint p = [t locationInView:control];
CGPoint center = control.center;
center.x += p.x - pPrev.x;
CGPoint hitPoint = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath *hitIndex = [self.tableView indexPathForRowAtPoint:hitPoint];
RecentCell * swipedCell = (RecentCell*)[self.tableView cellForRowAtIndexPath:hitIndex];
//Drag Button on left hand side
if (control.frame.origin.x<0) {
swipedCell.MessageView.Frame=CGRectMake(320.0+control.frame.origin.x,0,control.frame.origin.x,swipedCell.MessageView.frame.size.height);
NSLog(@"*****%f*****%f****%f****%f",swipedCell.MessageView.frame.origin.x,swipedCell.MessageView.frame.origin.y,swipedCell.MessageView.frame.size.width,swipedCell.MessageView.frame.size.height);
}
else{
swipedCell.CallImage.frame=CGRectMake(0.0,0,control.frame.origin.x,cell.CallImage.frame.size .height);
}
}
オレンジ色の画像は正常に動作していますが、青色の画像のビュー フレームがゼロになっています...
これを行うにはどうすればよいか教えてください...