NSVIEW الدوار الذي يحمل nsimageview
-
20-09-2019 - |
سؤال
أقوم بإنشاء NSView ، والتي تنشئ في طريقة Drawrect وتضيف NSImageView باعتبارها عرضًا فرعيًا.
أرغب في تدوير NSIMAGEVIEW (Circleview) ، أو [Self]. لذلك بطريقة أخرى ، أحاول القيام بذلك:
-(void)startAnimation {
CABasicAnimation* spinAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
spinAnimation.toValue = [NSNumber numberWithFloat:5*2*M_PI];
spinAnimation.duration = 2;
[circleView.layer addAnimation:spinAnimation forKey:@"spinAnimation"];
}
ومع ذلك ، فإن هذا الرمز لا يفعل أي شيء عندما تسمى الطريقة. أفعل شيئا خاطئا؟ حاولت Self.layer و Circleview.layer ولكن لا يبدو أنه يعمل ...
المحلول
أنت فقط تحدد الرسوم المتحركة ، فأنت لا تتصل فعليًا بمجموعة الرسوم المتحركة التي تؤدي الرسوم المتحركة.
تحتاج إلى استدعاء كتلة محددة بين:
+ beginAnimations:context:
+ commitAnimations
لتشغيل الرسوم المتحركة فعلا.
EDIT01: سيئتي. لم أهتم بالعلامات وأضفت إجابة واجهة برمجة تطبيقات iPhone.
نصائح أخرى
الإجابة على هذه المشكلة هي أن NSVIEW/NSIMAGEVIEW لم يكن لديه طبقة دعم للقيام بالرسوم المتحركة.
قمت بتعيين هذا مع:
[NSView setWantsLayer:YES];
لا تنتمي إلى StackOverflow