2013-09-01 4 views
1

я хочу, чтобы повернуть несколько UIImageView вокруг точки привязки и дать им немного вращения, так что может быть что-то вроде этогоПоворот UIImageView вокруг anchorPoint

https://www.google.com.eg/search?q=cards.&um=1&ie=UTF-8&hl=en&tbm=isch&source=og&sa=N&tab=wi&ei=zzkjUoXFL5GWswbrrIGgBw&biw=1024&bih=615&sei=0TkjUu2wHcmntAbC54Bo#facrc=&imgdii=&imgrc=BdArJtkexKgyQM%3A%3BnKsOa4ZSkOOFcM%3Bhttp%253A%252F%252Fdailywicca.com%252Fwp-content%252Fuploads%252F2011%252F10%252Fplaying-cards1.jpg%3Bhttp%253A%252F%252Fdailywicca.com%252F2011%252F10%252F08%252Freading-with-a-plain-deck-of-cards%252F%3B1920%3B1200

это мой код я думаю, он должен работать, но носить вещь случилась

int angel=0; 

for (int i=0; i<6; i++) 
{ 
    UIImage *image=[UIImage imageNamed:@"images.jpeg"]; 
    UIImageView *imageView=[[UIImageView alloc]initWithImage:image]; 
    [self.view addSubview:imageView]; 
    [imageView setFrame:CGRectMake(0, 0, 80, 80)]; 
    [imageView setCenter:CGPointMake(150, 150)]; 
    imageView.layer.anchorPoint = CGPointMake(1.0, 1.0); 
    imageView.transform = CGAffineTransformMakeRotation(angel); 

    angel+=3; 
} 

enter image description here

я думаю, что все они должны быть в том же сторона как iam увеличивая угол с 3, как достигнуть этого?

ответ

1

Это связано с тем, что CGAffineTransformMakeRotation() принимает радианы как входные, а не градусные. Теперь вы можете легко конвертировать из градусов в радианы, используя макрос так:

#define DEGREES_TO_RADIANS(angle) ((angle)/180.0 * M_PI) 

Или вы могли бы просто использовать меньшие значения входного сигнала. В радианах 360 градусов равны 2 * π ~ 6.28, поэтому вместо того, чтобы варьировать ваши значения, принимающие 0-360, вы должны принять 0-2π. Когда вы увеличиваете значение на 3, вы фактически увеличиваете его чуть ниже 180 градусов, поэтому вы видите, что вы есть.

В общем, попробуйте использовать angel += 0.052539;. Вам нужно изменить angel от междунар к поплавку, как @Kyle W. отметил

+0

идеально, теперь я могу видеть, что это ошибка, спасибо большое – hazem

1

Я не совсем уверен, что я понял ваш вопрос, но попробуйте это:

Измените угол от int к a float.

float angel = 0; 

Изменение приращения для каждой итерации цикла.

angel += 0.3; 

Кроме того, я думаю, что вы имеете в виду «угол» не «ангел»;)

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