アプリケーションにカスタムビューがあり、これはレイヤーバックでNSScrollView
に埋め込まれています。私はユーザーがズームインすることができます(これは、私のカスタムビューのサイズを増やすことによって達成されます)。しかし、NSScrollView
が新しいスクロールポイントをポイントする前に、ビューを(通常はビューの原点に)ジャンプさせ続けるため、任意のポイントでズームインするのに問題があります。 CAScrollLayer
を使用したいと思っています。なぜなら、私はそれに合わせてズーミングを正しく行うことができ、スムーズに動かせることが分かっているからです。しかし、スクロール機能はすべて失われてしまいます。スクロールをアニメーション化し、原子的にズームしますか?
CAScrollLayer
をNSScrollView
に利用する方法はありますか?NSClipView
の可能性がありますか?そうでない場合、CAScrollLayer
は実際にどのような目的を果たしますか?別のアプローチで、ビューのサイズとスクロールポイントを原子的に変更してアニメーション化することは可能ですか?
要するに、CAScrollLayer
は完全に役に立たないか、ほとんど役に立たないのですか?
更新
私は、ビューの内容を表示するCALayer
サブクラスを作ることによって周りにあまりジャンプして、私の内側のビューを得ています。レイアウトの制約でサイジングするのではなく、オーバーライドサイズを-resizeWithOldSuperlayerSize:
に設定しました。私はまだフレームサイズと私のビューの原点を同時に変更することはできませんし、滑らかなアニメーションを得る。私が探しているものの感覚を得るには、プレビューで画像を開き、拡大/縮小します。これは、画像の中心を滑らかに拡大します。
NSScrollerはUIのクロムを提供しませんが、正しいですか?同様の効果を達成するためにどこの例が使用されていますか? OSのバージョンは問題ではありません。ライオン(または、私が出荷する時期によってはマウンテンライオン)を必要とするためです。 – Dov
'NSScroller'はNSScrollerViewが使用するものです。はい、UIのクロムを提供します(スクロールバーの描画を担当するのであれば)。私たちはiDefragでそれを使用しています(ブロックビューはOpenGLを使って実際に描画され、32ビットAppKitの 'float'座標の精度問題のために独自のスクロールを行います)。 – alastair