これが起こっているビデオです:
基本的に、パン中に UIImageView (X) のイメージ プロパティを変更すると、ビュー内のすべてのコントロールがパンされていない元の位置に戻ります。(それらはすべて UIView に埋め込まれているため、「セルをパン」できますが、UIImageViews はビューの外にあり、独立しています。)
画像を変更しない場合:
記録のために、ユーザーが一定量パンしたときに画像を変更します。80 ポイントだと思います。
コードは次のとおりです。
// Only allow the cell to be moved 100 pixels left or right
if (xPos <= 100 && xPos >= -100) {
// Move our cell to the xPos we defined
CGRect slidingViewFrame = self.slidingView.frame;
slidingViewFrame.origin = CGPointMake(xPos - 100, 0);
self.slidingView.frame = slidingViewFrame;
if (xPos >= 80) {
if (_removeIconIsActive == NO) {
// Change remove icon to a red, active state and animate the change
self.removeIconImageView.image = [UIImage imageNamed:@"remove-icon-active.png"];
_removeIconIsActive = YES;
}
CGRect removeIconFrame = self.removeIconImageView.frame;
removeIconFrame.origin = CGPointMake(40, 35);
self.removeIconImageView.frame = removeIconFrame;
}
}
ビューはストーリーボードで設定されますが、移動と操作はすべてコードで行われます。
ストーリーボードのレイアウトは次のとおりです。
セルのパンニングを処理する完全なメソッドは次のとおりです: https://gist.github.com/anonymous/c51c7cb2997c89094f08