Bir iOS uygulaması için Swift kullanarak giriş ekranı oluşturmaya çalışıyorum. Klavyenin gizli kalmasını istemediğim şeydir.Klavye Bildirimleri'nde Görünüm Düzenini Değiştir (Swift, iOS)
Here. Kullanıcı bir metin alanına dokunduktan sonra, klavye ile birlikte this gibi görünmek istiyorum. Görebildiğiniz gibi, daha kompakt
Bunu kendi başıma yapmayı denedim, ancak 'u InterfaceBuilder
kullanıyorum bu yana, çevrimiçi bulduğum örnekleri kullanarak bunu anlayamıyorum. Her şey UIScrollView
içine gömülür.
Sorum şu: Bu doğru mu yapıyorum? Daha önce InterfaceBuilder
'da ayarlanmış olan tüm kısıtlamaların kaldırılması ve ardından istediğim gibi görünmesi için programatik olarak yeniden programlanması.
Bunu yapmanın daha iyi bir yolu var mı? Bu sıkıcı görünüyor. Swift/iOS programlamasında yeniyim, bu yüzden bu açık bir soru ise özür dilerim. İşte
şimdiye kadar, benim yaptığım budur:@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var logoImage: UIImageView!
@IBOutlet weak var logoText: UILabel!
@IBOutlet weak var usernameTextField: UITextField!
@IBOutlet weak var passwordTextField: UITextField!
@IBOutlet weak var loginButton: UIButton!
@IBOutlet weak var forgotPasswordButton: UIButton!
@IBOutlet weak var createAccountButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
registerForKeyboardNotifications()
}
func registerForKeyboardNotifications() {
let notificationCenter = NSNotificationCenter.defaultCenter()
notificationCenter.addObserver(self, selector: "keyboardWillBeShown:", name: UIKeyboardWillShowNotification, object: nil)
notificationCenter.addObserver(self, selector: "keyboardWillBeHidden:", name: UIKeyboardWillHideNotification, object: nil)
}
func keyboardWillBeShown(sender: NSNotification) {
let userInfo = sender.userInfo!
let keyboardHeight = (userInfo[UIKeyboardFrameEndUserInfoKey] as! NSValue).CGRectValue().height
let screenSize: CGRect = UIScreen.mainScreen().bounds // get screen size
let screenWidth = screenSize.width // ... screen width
let screenHeight = screenSize.height // ... screen height
let heightToFit = screenHeight - keyboardHeight // ... height of screen with keyboard
self.view.translatesAutoresizingMaskIntoConstraints = false
self.view.removeConstraints(self.view.constraints)
self.view.addConstraint(
NSLayoutConstraint(item: self.scrollView,
attribute: .Bottom,
relatedBy: .Equal,
toItem: self.view,
attribute: .Bottom,
multiplier: 1.0,
constant: -keyboardHeight))
self.view.addConstraint(
NSLayoutConstraint(item: self.scrollView,
attribute: .Top,
relatedBy: .Equal,
toItem: self.view,
attribute: .Top,
multiplier: 1.0,
constant: 0.0))
self.view.addConstraint(
NSLayoutConstraint(item: self.scrollView,
attribute: .Trailing,
relatedBy: .Equal,
toItem: self.view,
attribute: .Trailing,
multiplier: 1.0,
constant: 0.0))
self.view.addConstraint(
NSLayoutConstraint(item: self.scrollView,
attribute: .Leading,
relatedBy: .Equal,
toItem: self.view,
attribute: .Leading,
multiplier: 1.0,
constant: 0.0))
self.view.addConstraint(
NSLayoutConstraint(item: self.scrollView,
attribute: .Height,
relatedBy: .Equal,
toItem: nil,
attribute: .NotAnAttribute,
multiplier: 1.0,
constant: heightToFit))
self.view.addConstraint(
NSLayoutConstraint(item: self.view,
attribute: .Width,
relatedBy: .Equal,
toItem: nil,
attribute: .NotAnAttribute,
multiplier: 1.0,
constant: screenWidth))
self.scrollView.setContentOffset(CGPointMake(0, self.usernameTextField.frame.origin.y - 50), animated: true)
}
func keyboardWillBeHidden(sender: NSNotification) {
let screenSize: CGRect = UIScreen.mainScreen().bounds // get screen size
let screenWidth = screenSize.width // ... screen width
let screenHeight = screenSize.height // ... screen height
self.view.translatesAutoresizingMaskIntoConstraints = true
self.view.removeConstraints(self.view.constraints)
self.view.addConstraint(
NSLayoutConstraint(item: self.scrollView,
attribute: .Bottom,
relatedBy: .Equal,
toItem: self.view,
attribute: .Bottom,
multiplier: 1.0,
constant: screenHeight))
self.view.addConstraint(
NSLayoutConstraint(item: self.scrollView,
attribute: .Top,
relatedBy: .Equal,
toItem: self.view,
attribute: .Top,
multiplier: 1.0,
constant: 0.0))
self.view.addConstraint(
NSLayoutConstraint(item: self.scrollView,
attribute: .Trailing,
relatedBy: .Equal,
toItem: self.view,
attribute: .Trailing,
multiplier: 1.0,
constant: 0.0))
self.view.addConstraint(
NSLayoutConstraint(item: self.scrollView,
attribute: .Leading,
relatedBy: .Equal,
toItem: self.view,
attribute: .Leading,
multiplier: 1.0,
constant: 0.0))
self.view.addConstraint(
NSLayoutConstraint(item: self.scrollView,
attribute: .Height,
relatedBy: .Equal,
toItem: nil,
attribute: .NotAnAttribute,
multiplier: 1.0,
constant: screenHeight))
self.view.addConstraint(
NSLayoutConstraint(item: self.view,
attribute: .Width,
relatedBy: .Equal,
toItem: nil,
attribute: .NotAnAttribute,
multiplier: 1.0,
constant: screenWidth))
self.scrollView.setContentOffset(CGPointMake(0, -self.usernameTextField.frame.origin.y + 50), animated: true)
}
Dağıtım hedef nedir:
Burada küçük bir pasajı mı? iOS 9 veya daha önce bir şey mi? –
Bu iOS 9, Rob'dir. – aashah7