2015-09-23 2 views
0

Я сделал функцию, которая даст случайный центр к й координате UIImageView:Как вызвать функцию в Swift?

func place(){ 

    var ran: CGFloat = CGFloat(arc4random() % 500) 
    Retry.center.x = ran 

} 

Я хочу, чтобы вызвать функцию внутри функции viewDidLoad, но это не похоже на работу. Я пробовал self.place() и [self place] и только place(), но никто не вызвал метод. Im работает над Xcode 7 со Swift Language.

+4

Не связано с проблемой, но измените 'arc4random()% 500' на' arc4random_uniform (500) '. – rmaddy

+1

Где вы пишете эту функцию? Это в классе? –

+0

Этот код работает отлично. Я попробовал его с помощью NSTimer, чтобы каждую секунду он менялся в зависимости от значения «run», и он работает. Но мне нужно, чтобы он выполнял мою команду, а не таймер. Спасибо за это. Я не уверен на 100%, насколько духовно работает. И эта функция находится в классе ViewController. – MrBear36

ответ

0

Чтобы ваш код мог отправлять сообщения объекту пользовательского интерфейса, создайте соединение с объектом пользовательского интерфейса с выходом в вашем коде. Самый простой способ контролировать-перетащить из объекта в Interface Builder в файле реализации в помощника editor.After, что вы можете использовать свойство наблюдателя и иметь его, как это для того, чтобы работать enter image description here

@IBOutlet weak var someView: theView! 
     { 
      didSet 
      { 
       someView.place()    
      } 

Сожалеем о проецирование изображения, с Objective C кода, но вы получите точку :) Кроме того, как предложил сделать использовать arc4random_uniform вместо arc4random() % 500

+0

Он продолжает говорить, что «UIImage» не имеет ни одного члена » – MrBear36

+0

можете ли вы поделиться немного больше кода? если функция находится в вашем UIImagrView, не следует сказать, что – Korpel

0

вы должны внести изменения макета в viewDidLayoutSubviews от переопределить этот метод и призывающих place() там.

override func viewDidLayoutSubviews() { 
    place() 
} 
Смежные вопросы