Случайное число frame.origin.x - PullRequest
0 голосов
/ 17 марта 2012

Я хочу случайные frame.origin.x и frame.origin.y при каждом нажатии кнопки.Кнопка должна перемещаться внутри экрана iPhone.

CGRect frame = MyButton.frame;

frame.origin.x = 10;
frame.origin.y = 10;

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration: 0.1];
MyButton.frame = frame;
[UIView commitAnimations];

Кто-нибудь знает, как я могу генерировать случайное число / позицию?Что-то вроде

frame.origin.x = frame.size.width * (arc4random() % (10 - 1)); ?

Но это перемещение кнопки за пределы экрана

Ответы [ 2 ]

0 голосов
/ 17 марта 2012

Просто сделайте случайное значение с плавающей точкой между 0 и 1, как в этот вопрос . Ваш текущий код будет генерировать значение от 0 до 8 раз ширину экрана, но только с целыми числами, кратными.

0 голосов
/ 17 марта 2012

Вы должны определить

#define ARC4RANDOM_MAX      0x100000000

И получить плавающий как:

double val = floorf (((double) arc4random () / ARC4RANDOM_MAX) * 100.0f);

Больше информации здесь

http://iphonedevelopment.blogspot.com/2008/10/random-thoughts-rand-vs-arc4random.html

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