হিসাবে বেন বললেন, আপনার সাথে কাজ করতে হবে UIView's
, স্তর একটি ব্যবহার CATransform3D
সম্পাদন করতে layer's
rotation
। কৌতুক দৃষ্টিকোণ কাজ করে তার জন্য, যেমন এখানে বর্ণিত , ম্যাট্রিক্স এক সরাসরি অ্যাক্সেস করতে হয় cells
এর CATransform3D
(M34)। ম্যাট্রিক্স গণিত কখনও আমার জিনিস ছিল না, তাই আমি কেন এটি কাজ করে ঠিক তা ব্যাখ্যা করতে পারি না, তবে তা হয়। আপনার প্রাথমিক ট্রান্সফর্মের জন্য আপনাকে এই মানটি একটি নেতিবাচক ভগ্নাংশে সেট করতে হবে, তারপরে আপনার স্তর ঘূর্ণনটির রূপান্তরটি প্রয়োগ করুন। আপনি নিম্নলিখিতগুলি করতে সক্ষম হবেন:
উদ্দেশ্য গ
UIView *myView = [[self subviews] objectAtIndex:0];
CALayer *layer = myView.layer;
CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;
rotationAndPerspectiveTransform.m34 = 1.0 / -500;
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, 45.0f * M_PI / 180.0f, 0.0f, 1.0f, 0.0f);
layer.transform = rotationAndPerspectiveTransform;
সুইফ্ট 5.0
if let myView = self.subviews.first {
let layer = myView.layer
var rotationAndPerspectiveTransform = CATransform3DIdentity
rotationAndPerspectiveTransform.m34 = 1.0 / -500
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, 45.0 * .pi / 180.0, 0.0, 1.0, 0.0)
layer.transform = rotationAndPerspectiveTransform
}
যা প্রতিটি ঘোরার জন্য স্ক্র্যাচ থেকে স্তরটিকে রূপান্তর করে।
এর (কোড সহ) এর একটি পূর্ণ উদাহরণ এখানে পাওয়া যাবে , যেখানে আমি CALayers
বিল দুডনির একটি উদাহরণের ভিত্তিতে কয়েকটি উপর টাচ-ভিত্তিক ঘূর্ণন এবং স্কেলিং প্রয়োগ করেছি । পৃষ্ঠার একেবারে নীচে প্রোগ্রামটির নতুনতম সংস্করণ, এই ধরণের দৃষ্টিভঙ্গি অপারেশনটি প্রয়োগ করে। কোডটি পড়ার পক্ষে যুক্তিসঙ্গতভাবে সহজ হওয়া উচিত।
sublayerTransform
আপনি আপনার প্রতিক্রিয়ায় পড়ুন একটি রুপান্তর আপনার এর sublayers প্রয়োগ করা হয় UIView's
CALayer
। আপনার যদি কোনও সাবলেয়ার না থাকে তবে এটি নিয়ে চিন্তা করবেন না। আমি আমার উদাহরণে সাবলেয়ার ট্রান্সফর্মটি কেবলমাত্র ব্যবহার করি কারণ আমি যে স্তরটি ঘুরছি তার মধ্যে দুটি CALayers
স্তর রয়েছে।