Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.

Klavyenin altında kalan kontroller

0 oy
43 kez görüntülendi
20, Ocak, 2017 ios development kategorisinde Selim tarafından soruldu
20, Ocak, 2017 Selim tarafından düzenlendi
Merhaba,

Dünden beri sayısız kod örneği denememe rağmen tam olarak istediğimi yapamadım. view içerisinde textfield ve textview kontollerimden oluşan bir formum var. Formun aşağısındaki kontrollere tıkladığımda textfied ve textview kontrollerim klavye altında kalıyor. Denediğim kodlarda hangi textfield yada view a tıklasam kontroller yukarı kayıyor yani ilk kontrole tıkladığımda klavye altında kalmayacak olan kontrol için bile klavye göründüğünde yukarı kayıyor görünmez oluyor.

 Scroll view içeren ve içermeyen iki view kontrolüm var ve ikisinde de çalışacak bir örneğe ihtiyacım var. Yardımcı olursanız sevinirim.

1 cevap

0 oy
20, Ocak, 2017 yasin tarafından cevaplandı
6, Şubat, 2017 Selim tarafından seçilmiş
 
En İyi Cevap

tam anlayamdım. klavye görüntülendiğinde kontrol dediğin textfield ve textview alnalarının yukarı kayması çözmüyor mu problemi? en azında bi ekran görüntüsü filan paylaşırsan daha anlaşılır olur.

20, Ocak, 2017 Selim tarafından yorumlandı
20, Ocak, 2017 Selim tarafından düzenlendi
Evet çözüyor istediğim de bu zaten ama swift 3 için uygulamaya çalıştığım kodlar textfield e tıklandığında çalışıyor textview e tıklandığında çalışmıyor  ya da bir şekilde hataya düşüp klavye kapandığında siyah bir boşluk bırakıyor.

Son kullandığım kod bu, bu kod çalışıyor ancak textviewde işe yaramıyor

func textFieldDidBeginEditing(_ textField: UITextField) {
        let textFieldRect : CGRect = self.view.window!.convert(textField.bounds, from: textField)
        let viewRect : CGRect = self.view.window!.convert(self.view.bounds, from: self.view)
        
        let midline : CGFloat = textFieldRect.origin.y + 0.5 * textFieldRect.size.height
        let numerator : CGFloat = midline - viewRect.origin.y - MoveKeyboard.MINIMUM_SCROLL_FRACTION * viewRect.size.height
        let denominator : CGFloat = (MoveKeyboard.MAXIMUM_SCROLL_FRACTION - MoveKeyboard.MINIMUM_SCROLL_FRACTION) * viewRect.size.height
        var heightFraction : CGFloat = numerator / denominator
        
        if heightFraction == 1.0 {
            heightFraction = 1.0
        }
        
        let orientation : UIInterfaceOrientation = UIApplication.shared.statusBarOrientation
        if (orientation == UIInterfaceOrientation.portrait || orientation == UIInterfaceOrientation.portraitUpsideDown) {
            animateDistance = floor(MoveKeyboard.PORTRAIT_KEYBOARD_HEIGHT * heightFraction)
        } else {
            animateDistance = floor(MoveKeyboard.LANDSCAPE_KEYBOARD_HEIGHT * heightFraction)
        }
        
        var viewFrame : CGRect = self.view.frame
        viewFrame.origin.y -= animateDistance
        
        UIView.beginAnimations(nil, context: nil)
        UIView.setAnimationBeginsFromCurrentState(true)
        UIView.setAnimationDuration(TimeInterval(MoveKeyboard.KEYBOARD_ANIMATION_DURATION))
        
        self.view.frame = viewFrame
        
        UIView.commitAnimations()
    }
    
    func textFieldDidEndEditing(_ textField: UITextField) {
        var viewFrame : CGRect = self.view.frame
        viewFrame.origin.y += animateDistance
        
        UIView.beginAnimations(nil, context: nil)
        UIView.setAnimationBeginsFromCurrentState(true)
        
        UIView.setAnimationDuration(TimeInterval(MoveKeyboard.KEYBOARD_ANIMATION_DURATION))
        
        self.view.frame = viewFrame
        
        UIView.commitAnimations()
        
    }
    
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        return true
    }
20, Ocak, 2017 yasin tarafından yorumlandı
textView delegate metodları nerede?
textView'i delegate etmelisin.
20, Ocak, 2017 yasin tarafından yorumlandı
konuyla alakalı bir önek hazırladım.
şuradan indirip inceleyebilirsin.
https://drive.google.com/open?id=0B_33To7xgYO7R0dMZFhBTnVyTTg
6, Şubat, 2017 Selim tarafından yorumlandı

Çok teşekkür ederim.

...