2014-08-25 3 views
1

Я делаю пользовательскую клавиатуру для iOS 8 с помощью Swift. Я чрезвычайно новичок в разработке iOS, и я не смог решить эту проблему самостоятельно. В документах по программированию расширения приложений Apple Apple заявила, что после ее запуска вы можете изменить высоту любой пользовательской клавиатуры. Они представили пример в Objective-C, но я использую Swift и до сих пор, я не могу найти Swift-версию кода.Как изменить пользовательскую высоту клавиатуры iOS 8 с помощью Swift?

Может кто-то конвертировать 3 строки кода в Swift или показать мне способ изменить высоту клавиатуры, пожалуйста?

Вот веб-страницу с кодом: https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/ExtensibilityPG/Keyboard.html

А вот строки кода:

CGFloat _expandedHeight = 500; 
NSLayoutConstraint *_heightConstraint = 
[NSLayoutConstraint constraintWithItem: self.view 
    attribute: NSLayoutAttributeHeight 
    relatedBy: NSLayoutRelationEqual 
    toItem: nil 
    attribute: NSLayoutAttributeNotAnAttribute 
    multiplier: 0.0 
    constant: _expandedHeight]; 
[self.view addConstraint: _heightConstraint]; 
+0

Вы можете проверить этот вопрос более подробно: https://stackoverflow.com/questions/24167909/ios-8-custom-keyboard-changing-the-height/25819565#25819565 – skyline75489

ответ

1
let heightConstraint = NSLayoutConstraint(item: view, 
            attribute: .Height, 
            relatedBy: .Equal, 
             toItem: nil, 
            attribute: .NotAnAttribute, 
            multiplier: 0.0, 
             constant: expandedHeight) 
+1

я ставлю код, который вы мне дали в файл .swift для моей клавиатуры, а высота не изменилась? У вас есть идеи, почему? – Francis

+0

Это был бы другой вопрос, не так ли? Работает ли он в Objective-C? – Mundi

+0

Я только пробовал Swift. Но я помещал его в метод viewDidLoad, и я просто читал, что я показываю его в viewDidAppear, я попробую это и дам вам знать результат. – Francis

0

полностью,

let expandedHeight:CGFloat = 500 
     let heightConstraint = NSLayoutConstraint(item:self.view, 
      attribute: .Height, 
      relatedBy: .Equal, 
      toItem: nil, 
      attribute: .NotAnAttribute, 
      multiplier: 0.0, 
      constant: expandedHeight) 
      self.view.addConstraint(heightConstraint) 
+0

Это просто повторяет предыдущий ответ с неправильным форматированием. Вопрос только просил для строки 3. – Mundi

+0

@Mundi, пожалуйста, прочитайте вопрос, как @Francis спросил: «Может кто-то конвертировать 3 строки кода в Swift' не строка 3 и, пожалуйста, покажите мне ошибки – codeIgnitor

+0

ОК, спасибо, что указали это. Все еще не обязательно повторять очевидное. – Mundi

4

Я добавил код, предоставленный в viewDidAppear и клавиатура изменили размер.

Вот код, который сработал.

override func viewDidAppear(animated: Bool) { 
    super.viewDidAppear(animated) 
    let expandedHeight:CGFloat = 500 
    let heightConstraint = NSLayoutConstraint(item:self.view, 
     attribute: .Height, 
     relatedBy: .Equal, 
     toItem: nil, 
     attribute: .NotAnAttribute, 
     multiplier: 0.0, 
     constant: expandedHeight) 
    self.view.addConstraint(heightConstraint) 
} 
+4

Но я получил это: Не удалось одновременно удовлетворить ограничениям. \t Возможно, по крайней мере одно из ограничений в следующем списке - это тот, который вы не хотите. translatesAutoresizingMaskIntoConstraints) ( "", "" ) –

+0

У меня ошибка: «Не удалось найти пользователя« Высота » – SomeGuy

+1

@EthanLong эта проблема случается, когда вы устанавливаете высоту входного просмотра короче. У меня такая же проблема прямо сейчас, и я не могу ее найти! – TomSawyer

Смежные вопросы