Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.
0 oy
805 kez görüntülendi
ios development kategorisinde tarafından
iPhone uygulamamda, NavigationBar'da yer alan  bir butonum var. Bunun üzerine dokunulunca storyboard'ta hazırladığım font büyütme küçültme sembollleri ve sliderdan oluşan viewcontrollerim (320 x60) Popup olarak  bounce efektliyle açılsın istiyorum:

http://i.hizliresim.com/0qE61o.png

Bunu gerçekleştirmek için şu kodlardan yararlandım:
https://github.com/Christian1313/iOS_Swift_ColorPicker

Ancak popupun açılması küt diye oluyor. Bunun hiçbir şekilde bir bounce efekti ile çıkmasını ve kaybolmasını sağlayamadım.

1 cevap

+1 oy
tarafından
tarafından seçilmiş
 
En İyi Cevap

fikir vermesi açısından.
UIView animation ve transform property'sini kullanılarak basitçe şöyle bir custom bouncing animasyonu yapılabilir.

@IBAction func buttonAaction(sender: AnyObject) {
var tempView:UIView = UIView(frame: CGRectMake(20, 20, 280, 100))
tempView.backgroundColor = UIColor.redColor()
tempView.alpha = 0
self.view.addSubview(tempView)
var starttingScaleTransform:CGAffineTransform = CGAffineTransformMakeScale(0.0, 0.0)
tempView.transform = starttingScaleTransform
UIView.animateWithDuration(0.2, delay: 0.0, options: UIViewAnimationOptions.CurveEaseOut, animations: { () -> Void in
tempView.alpha = 1
var bouncingScaleUpTransform:CGAffineTransform = CGAffineTransformMakeScale(1.1, 1.1)
tempView.transform = bouncingScaleUpTransform
}) { (Bool) -> Void in
UIView.animateWithDuration(0.1, delay: 0.0, options: UIViewAnimationOptions.CurveEaseIn, animations: { () -> Void in
tempView.alpha = 1
var bouncingScaleDownTransform:CGAffineTransform = CGAffineTransformMakeScale(1.0, 1.0)
tempView.transform = bouncingScaleDownTransform
}, completion: nil)
}
}

tarafından
Teşekkür ederim. Normal kullanımda tam istediğim etki. Ancak şu  şekilde açılan bir ekran için uyarlayamıyorum:

@IBAction func showColorPickerProgrammatically(sender: UIButton)
    {
        let colorPickerVC = SwiftColorPickerViewController()
        colorPickerVC.delegate = self
        colorPickerVC.modalPresentationStyle = .Popover
        let popVC = colorPickerVC.popoverPresentationController!;
        popVC.sourceRect = sender.frame
        popVC.sourceView = self.view
        popVC.permittedArrowDirections = .Any;
        popVC.delegate = self;
        
 // Sizin örneğinizi burada present edilen controllere uyarlamak istiyorum.
        self.presentViewController(colorPickerVC, animated: true, completion: nil)
    }
tarafından
+1
hımm, sizin örnek popoverPresentationController'la yapılmış.
daha önce verdiğim örnek kafanızı karıştırmasın o zaman.
Çünkü ben bir UIView kullanılarak bu işin nasıl yapılabileceğine dair bir örnek vermiştim.

ayrıca kullandığınız örnek github projesini incelediğimde de colorpicker penceresi zaten bouncing efektiyle açılmıyor.
tarafından
İşte ben de bu colorpicker penceresinin teknik olarak yaptığınız bir önceki örnekteki gibi bounce ile açılabilir mi onu öğrenmek istiyorum sizden. Teşekkür ederim.
tarafından
+1
hiç denemedim emin değilim ama muhtemelen yapılamıyordur.  
scale, translate, 3d veya 2d Rotation gibi custom transformation efektler kullanmak istiyorsanız, içeriğinizi bir UIView kullanarak görüntüleyin ve yukarıda verdiğim örnekte olduğu gibi animasyonlar yaratın.
böylece istediğiniz animasyonları yapmak için daha esnek bir yapı kurmuş olursunuz.
controller kullanmak oldukça kısıtlayıcı olabilir bu gibi durumlarda.
tarafından
Teşekkür ederim Yasin bey yardımlarınız için.

Son olarak popover etkisini elde etmek için şu resimdeki gibi bir uiview oluşturabilir miyim sizce ?

http://i.hizliresim.com/ZD9m8G.jpg
tarafından
tabiki oluşturabilirsin.
tarafından
Teşekkür ederim.
...