2015-03-03 3 views
1

Я относительно новичок в быстром языке, и мне сложно создать кнопку. Я создал новый файл как UIButton, так как бы я изменил тип кнопки, используя «self»?Быстрое программирование UIButtons

, например ..

import UIKit 

class LoginButton: UIButton { 
    override init(frame: CGRect){ 

     super.init(frame: frame) 


     self.buttonWithType(UIButtonType.System) as UIButton 
// Above is where I need the button type as "System" 

     self.enabled = true 
     self.setTitle("Log in", forState: UIControlState.Normal) 
     self.addTarget(self, action: "logInPressed", forControlEvents: UIControlEvents.TouchUpInside) 


    required init(coder aDecoder: NSCoder) { 
     fatalError("init(coder:) has not been implemented") 
    } 

    func logInPressed(){ 
     println("log in") 
    } 

} 

ответ

2

вам действительно нужно подкласс UIButton ли? В большинстве случаев использования UIButton использует напрямую и не подклассифицирует его.

Метод buttonWithType(), с которым вы ссылаетесь, является методом класса (а не методом экземпляра). Вы называете это UIButton.buttonWithType (type), который возвращает настроенный таким образом UIButton. Вы не можете изменить тип после создания кнопки; однако доступно несколько способов для изменения внешнего вида кнопки после создания экземпляра.

Чтобы добавить коричневые границы размера 2.0 для вашей кнопки, вы можете добавить следующий код:

myButton.layer.borderColor = UIColor.brownColor().CGColor 
    myButton.layer.borderWidth = 2.0 
+0

Я предполагаю, что я должен бы просто спросил другие способы изменения внешнего вида кнопки. В подклассе без метода buttonWithType() он компилируется и работает просто отлично. Внешний вид кнопки - это просто текст, рамка или что-то еще. Это внешний вид по умолчанию. Какие способы изменить внешний вид кнопки? – josiebear

+0

Вы можете изменить несколько свойств, таких как titleColor для каждого состояния и backgroundColor. Оформить заказ документации UIButton, а также суперклассы вдоль линии наследования. Также вы можете захватить слой кнопки, чтобы при необходимости настроить границу, а также другие свойства. –