commitAnimations не изменяет размер моего подпредставления UIImageView - PullRequest
0 голосов
/ 19 мая 2010

Я создал UIView в качестве подпредставления, и к этому подпредставлению я добавил UIImageView в качестве подпредставления.

UIView *viewCreated;
UIButton *buttonCreated;
UIImageView *imageViewCreated;
CGRect myFrame = CGRectMake(0, 0, 1024, 1024);
viewCreated = [[UIView alloc] initWithFrame:myFrame];
[viewCreated setTag:intTag];
viewCreated.backgroundColor = [UIColor redColor];
[self.view addSubview:viewCreated];
[self randomize];
UIImage *d1Image = [UIImage imageNamed:[NSString stringWithFormat:@"image%d.png", randomNumber]];
imageViewCreated = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f,0.0f,1024.0f, 1024.0f)];
[imageViewCreated setImage:[UIImage imageNamed:[NSString stringWithFormat:@"image%d.png", randomNumber]]]; 
[viewCreated addSubview:imageViewCreated];
//[imageViewCreated release];
return [viewCreated autorelease];

Но когда этот код выполняется, только первое подпредставление анимируется и изменяется. UiimageView перемещается на 200 пикселей влево, но не изменяется.

NSLog(@"sender tag %i",[sender tag]);   
UIView *currentView = [self.view viewWithTag:[sender tag]];

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.5];  
currentView.frame = CGRectMake(-200, 0,40, 102);
[UIView commitAnimations];

Я почти уверен, что не правильно создаю подпредставления программно, потому что, когда я делаю это в Интерфейсном Разработчике, все работает как положено.

Должен ли я сделать что-то конкретное, чтобы фактически связать поведение второго подпредставления с первым подпредставлением?

Ответы [ 2 ]

0 голосов
/ 25 мая 2010

Я решил использовать это, чтобы решить мою проблему. Работал отлично.

imageViewCreated.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
0 голосов
/ 19 мая 2010

Несколько предложений:

  • Поиграйте со свойством contentMode UIImageView.Режим по умолчанию - UIViewContentModeScaleToFill.Что-то вроде UIViewContentModeScaleAspectFit может работать лучше.

  • Убедитесь, что где-то в вашем коде случайно не установлено свойство autoresizesSubviews для NO.

  • Вместо использования размеров кадра для масштабирования вида, используйте свойство transform и функцию CGAffineTransformMakeScale.Чтобы заставить его двигаться, вы также можете использовать CGAffineTransformMakeTranslation.

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