Этот код использует random:min:max
для генерации случайного значения x и y между желаемым минимальным и максимальным диапазоном. В функции onTimer
мы выделяем новый объект UIImageView
, а затем устанавливаем его свойство center в случайное положение вне экрана. Если сгенерированное случайное число внутри оператора if меньше 5, то представление будет добавлено либо слева, либо вверху экрана, в противном случае оно будет добавлено справа или снизу.
/*****************************************************************************
Generates a pseudo random CGPoint point value within the min and max range.
*****************************************************************************/
-(CGFloat)rand:(CGFloat)min:(CGFloat)max{
float difference = max - min;
return (((CGFloat) rand()/(CGFloat)RAND_MAX) * difference) + min;
}
-(void)viewDidLoad{
//setup a timer property in your view controller header file
timer = [NSTimer timerWithTimeInterval:1.0
target:self
selector:@selector(onTimer)
userInfo:nil
repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
}
-(void)onTimer{
UIImagView *myRandomImageView;
myRandomImageView = [[UIImageView alloc] initWithImage:@"MyRandomImage.png"];
if([rand:1:10] > 5)
//put the image view to top or left side of the screen
myRandomImageView.center = CGPointMake([rand:-100,-200], [rand:-100,-200]);
else
//put the image view to the bottom or right side of the screen
myRandomImageView.center = CGPointMake([rand:420,520], [rand:580,680]);
//dont forget that the values I have eneter here to be passed to the rand:min:max
//function are meant to serve as a guide and that you should enter your own values to
//achieve the desired random view positioning off screen.
[self.view addSubview:myRandomImageView];
[myRandomImageView release]
}