2016-04-26 1 views
0

Я программно создаю квадрат в быстром. Ниже мой код, но почему-то ничего не появляется.Площадь Не отображается

let PB1 = UIButton() 
func SetUpPB1() { 
    PB1.bounds = CGRect(x: 0, y: 0, width: 50, height: 50) 
    PB1.setBackgroundImage(UIImage(named: "RS"), forState:UIControlState.Normal) 
    PB1.center = CGPoint(x: 200, y: 200) 
    PB1.addTarget(self, action: Selector("PB1Pressed"), forControlEvents: UIControlEvents.TouchUpInside) 
    self.view?.addSubview(PB1) 
} 

P.S Мне нужна функция настройки или приложение будет аварийно завершено.

+0

ли вы когда-нибудь назвать своим 'SetupPB1' функция? – rmaddy

+1

FYI - это стандартные соглашения об именах, имена переменных и функций начинаются с строчных букв. Имена классов начинаются с прописных букв. – rmaddy

+1

Вы имеете в виду, что вы программно создаете квадратную кнопку, верно? Это гораздо более значимо, чем называть его квадратом. Как называется setupPB1? (От какой функции?) Если это в вашей инициализации, то вышесказанное потерпит неудачу, потому что self.view будет равен нулю. Вы должны вызвать эту функцию в 'viewDidLoad',' viewWillAppear' или 'viewDidAppear'. –

ответ

0

Вы сказали: «... как я могу назвать функцию? Я думал, что сделал это, написав ее?» Это не правильно. Функции не вызываются, если вы их не называете - вложенными функциями.

Если SetUpPB1() является вложенной функцией внутри вашего viewDidLoad, и вы вызываете ее только тогда, когда она, вероятно, является более чистой, чтобы просто избавиться от нее и вставить этот код в строку viewDidLoad.

В противном случае, вам нужно что-то вроде этого:

func viewDidLoad() { 
    let PB1 = UIButton() 
    func setUpPB1() { 
    PB1.bounds = CGRect(x: 0, y: 0, width: 50, height: 50) 
    PB1.setBackgroundImage(UIImage(named: "RS"), 
     forState:UIControlState.Normal) 
    PB1.center = CGPoint(x: 200, y: 200) 
    PB1.addTarget(self, action: Selector("PB1Pressed"), 
     forControlEvents: UIControlEvents.TouchUpInside) 
     self.view?.addSubview(PB1) 
    } 
    setUpPB1() //Add this line to call the function 
} 
+0

В нем говорится «использование неразрешенного идентификатора« setUpPB1 »« –

+0

Вы переименовали свою функцию, чтобы начать с буквы нижнего регистра? –

+0

нет, что еще может быть проблемой? –

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