私はグループ化UITableView
(サブクラスUITableViewCell
によって作成)を持っています。私は、サブビューを追加して、ちょうどこのようサブレイヤを挿入します。編集モードでサブビュー/レイヤーを持つカスタムセルを含むグループ化されたUITableView
[self.contentView addSubview:myUILabel];
と
[self.contentView.layer insertSublayer:myCALayer];
行を削除するための編集モードに入ると、細胞が右に移動し、myUILabel
とmyCALayer
はセルの国境を越えて行きますこれは醜く見えます。
私はこれを試してみました:
Grouped UITableView with custom UILabels in Editing Mode
...しかし、それは助けにはなりませんでした。
が働いた「のようなものが」私のカスタムセル
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
CGRect oldBounds = self.myCALayer.bounds;
CGRect newBounds = oldBounds;
CGPoint oldPosition = self.myCALayer.position;
CGPoint newPosition = oldPosition;
//move right
if (editing && !self.showingDeleteConfirmation) {
newBounds.size.width -=32;
newPosition.x -= 15;
}
//move back left
else if (self.editing) {
newBounds.size.width += 32;
newPosition.x += 15;
}
self.myCALayer.bounds = newBounds;
self.myCALayer.position = newPosition;
[super setEditing:editing animated:animated];
}
でsetEditing:
を上書きするために何が...しかし、アニメーションは同期的に実行されていません。何が起こるかは、編集モードに入るときにセルが右に移動している間に、まずレイヤーの幅が縮小し、位置が変化します。レイヤーは最終的にセルにフィットしますが、アニメーションは悪く見えます。
ありがとうございました!
こんにちはベン、ありがとう! 'anchorPoint'を左に設定することで、編集モードに入るときに' CALayer'の幅を調整するだけです。しかし、編集モードに入るときに、削除ボタンが移動するアニメーションに同期して、幅の変更の暗黙的なアニメーションを取得するのにはまだ苦労しています。何かヒント? – cel
' - [addAnimation:forKey:]'でレイヤーサイズを変更するのに 'CAAnimation'を使っていますか?そうでない場合は、http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/CoreAnimation_guide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40004514 –
こちらをご覧ください。あまりにも多くのことを試しました。それでも私は両方のアニメーションを同時に動かすことができません... – cel