Как получить высоту Generi c type item swift - PullRequest
0 голосов
/ 05 августа 2020

У меня есть функция (в расширении UIViewController), которая должна принимать общий тип c (потому что я мог бы передать кнопку, UITextField и т.д. c). В этой функции мне нужно найти высоту и ширину общего типа c (кнопка, UITextField, et c). Я использую эту информацию, чтобы иметь возможность прокручивать страницу вверх в зависимости от высоты клавиатуры, чтобы сделать кнопку или что-то еще, что она видна. Код для этого ниже.

extension UIViewController {
       func scrollUpKeyboard<Object>(object: Object, keyboardHeight: CGFloat, realOrigin: 
           CGPoint) {
       var buttonHeight = self.view.frame.size.height - (object.frame.size.height + 
           realOrigin.y)
        
        if keyboardHeight > buttonHeight {
            self.ScrollUpFromKeyboard(amount: keyboardHeight - buttonHeight)
        } else {
             self.ScrollUpFromKeyboard(amount: -10)
             
        }
   }
// More code
}

Я получаю сообщение об ошибке: «Значение типа« Объект »не имеет элемента« frame »». Как мне получить высоту и ширину объекта generi c.

1 Ответ

2 голосов
/ 05 августа 2020

Это не общие c объекты. Это все UIViews, который является суперклассом. Вы можете просто передать это:

func scrollUpKeyboard(object: UIView, ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...