आईफोन में बदलते विचारों पर भंग एनीमेशन कैसे बनाएं?आईफोन पर बदलते विचारों पर भंग एनीमेशन कैसे बनाया जाए?
प्रभाव को विसर्जित करें: एक दृश्य किसी भी आंदोलन के बिना किसी और को बदल रहा है।
धन्यवाद मदद के लिए बहुत कुछ!
आईफोन में बदलते विचारों पर भंग एनीमेशन कैसे बनाएं?आईफोन पर बदलते विचारों पर भंग एनीमेशन कैसे बनाया जाए?
प्रभाव को विसर्जित करें: एक दृश्य किसी भी आंदोलन के बिना किसी और को बदल रहा है।
धन्यवाद मदद के लिए बहुत कुछ!
एनीमेशन के लिए आप देख रहे हैं:
[UIView animateWithDuration: 1.0
animations:^{
view1.alpha = 0.0;
view2.alpha = 1.0;
}];
एक और पूरा समाधान है, कि एनीमेशन का उपयोग कर हो सकता है:
- (void) replaceView: (UIView *) currentView withView: (UIView *) newView
{
newView.alpha = 0.0;
[self.view addSubview: newView];
[UIView animateWithDuration: 1.0
animations:^{
currentView.alpha = 0.0;
newView.alpha = 1.0;
}
completion:^(BOOL finished) {
[currentView removeFromSuperview];
}];
}
[UIView beginAnimations: @"cross dissolve" context: NULL];
[UIView setAnimationDuration: 1.0f];
self.firstView.alpha = 0.0f;
self.secondView.alpha = 1.0f;
[UIView commitAnimations];
तुम भी iOS5 में और बाद में UIViewAnimationOptionTransitionCrossDissolve उपयोग कर सकते हैं ...
[UIView transitionFromView:currentView
toView:nextView
duration:2
options:UIViewAnimationOptionTransitionCrossDissolve
completion:^(BOOL finished) {
[currentView removeFromSuperview];
}];
धन्यवाद! आईओएस 4.3 पर तैनाती इस कोड के साथ उपलब्ध नहीं होगी? – Dmitry
या मैंने पहले ही इसमें बताया है ... इसका उपयोग आईओएस 5 और बाद में किया जाएगा :) – Aravindhan
class func transition(from fromView: UIView, to toView: UIView, duration: TimeInterval, options: UIViewAnimationOptions = [], completion: ((Bool) -> Void)? = nil)
दिए गए मापदंडों का उपयोग कर निर्दिष्ट विचारों के बीच एक संक्रमण एनीमेशन बनाता है: 510,403,210
UIView
एक विधिtransition(from:to:duration:options:completion:)
बुलाया निम्नलिखित घोषणा गई है।
कई UIViewAnimationOptions
पैरामीटर है कि आप transition(from:to:duration:options:completion:)
को पारित कर सकते हैं के अलावा transitionCrossDissolve
है।
static var transitionCrossDissolve: UIViewAnimationOptions { get }
एक संक्रमण है कि अगले करने के लिए एक दृश्य से घुल:
transitionCrossDissolve
निम्नलिखित घोषणा की है।
निम्नलिखित स्विफ्ट 3 खेल का मैदान कोड से पता चलता एक क्रॉस के साथ दो UIViews
के बीच टॉगल करने के लिए कैसे transition(from:to:duration:options:completion:)
और transitionCrossDissolve
का उपयोग करके संक्रमण भंग:
import UIKit
import PlaygroundSupport
class ViewController: UIViewController {
let firstView: UIView = {
let view = UIView(frame: CGRect(x: 50, y: 50, width: 100, height: 100))
view.backgroundColor = .red
return view
}()
let secondView: UIView = {
let view = UIView(frame: CGRect(x: 50, y: 50, width: 100, height: 100))
view.backgroundColor = .blue
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
view.addSubview(firstView)
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(toggle(_:)))
view.addGestureRecognizer(tapGesture)
}
func toggle(_ sender: UITapGestureRecognizer) {
let presentedView = view.subviews.first === firstView ? firstView : secondView
let presentingView = view.subviews.first !== firstView ? firstView : secondView
UIView.transition(from: presentedView, to: presentingView, duration: 1, options: [.transitionCrossDissolve], completion: nil)
}
}
let controller = ViewController()
PlaygroundPage.current.liveView = controller
मुझे लगता है कि यह तरीकों का उपयोग न करना बेहतर है। ब्लॉक बहुत अधिक सुरुचिपूर्ण हैं। जैसा कि ऐप्पल दस्तावेज कहता है: इस विधि का उपयोग आईओएस 4.0 और बाद में निराश है। – Gabriel
क्यों? ब्लॉक क्या हैं? – Dmitry
ब्लॉक-आधारित प्रोग्रामिंग। @ एशले मिल्स द्वारा जवाब देखें। – Gabriel