2016-05-03 8 views
0

Im creaing Program in swift, где у меня есть «Test.swift» с классом, содержащим статическую переменную. Одна из этих переменных является UITextField создается следующим образом:Как определить все аспекты нового UIvariable при создании?

static var textField1 : UITexField = UITextField() 

Следующая вещь, которую я хотел бы сейчас сделать, это дать этому textField1 некоторые аспекты, такие как шрифт и фон Colore, такие как этот

static var textField1 : UITexField = UITextField() 

Test.textField1.tintColor = UIColor.yellow() 

Это wount позволил мне сделать это, хотя из-за того, что im nof в функции im все еще находится в классе, теперь у меня возникла идея создать статическую функцию, которая добавляет весь аспект и возвращает законченное текстовое поле, но я бы предпочел сделать это несколько это:

static var textField1 : UITexField = UITextField(tintColor = UIColor.brown(), Font = etc.) 

это как-то достижимо?

+0

Вы можете только объявить 'UITextField' с' frame' или 'NSCoder', я предлагаю вам создать свой собственный подкласс' UITextField' и инициализировать его своими собственными параметрами. – Chajmz

+0

Ум, это неправда. Вы можете использовать ключевое слово 'extension' для достижения этого. – avismara

ответ

3

Почему бы не использовать расширения?

extension UITextField { 
    static func textFieldWithFont(font : UIFont, tintColor : UIColor) -> UITextField { 
     let textField = UITextField() 
     textField.tintColor = tintColor 
     textField.font = font 
     return textField 
    } 
} 

Вы можете использовать его так:

let textField = UITextField.textFieldWithFont(UIFont.systemFontOfSize(17), tintColor: UIColor.yellowColor()) 
Смежные вопросы