Сегодня я столкнулся со странной проблемой.У меня есть приложение, которое одинаково для iPhone и iPad, это универсальное приложение, однако я сделал два контроллера основного вида, один для iPhone и один для iPad.Сначала я сделал версию для iPhone ... потом скопировал часть кода в версию для iPad.Кажется, все работает нормально, кроме моего логотипа UIImageView.У меня есть логотип, который скользит вниз от экрана к центру панели навигации.Перед анимацией я настроил UIImageView за пределами экрана, чтобы он мог скользить вниз.Но даже если я добавлю любое случайное значение в x и y фрейма uiimageview, оно по-прежнему равно 0, 0. Это тот же код, что и на iPhone, и он работает нормально.
Вот моя инициализация.
UIImage *logoText = [UIImage imageNamed:@"logotext.png"];
[logoTextView setUserInteractionEnabled:YES];
logoTextView = [[UIImageView alloc] init];
// I already tried [[UIImageView alloc] initWithFrame:CGRectMake......];
logoTextView.frame = CGRectMake(389, -100, logoText.size.width, logoText.size.height);
logoTextView.image = logoText;
logoTextView.center = CGPointMake(389, -100);
logoTextView.alpha = 1;
[logoTextView addGestureRecognizer:resetGesture];
// [logoTextView setBackgroundColor:[UIColor whiteColor]];
[self.view insertSubview:logoTextView atIndex:10];
Это на самом деле должно позиционировать UIImageView в центре и на 100px за пределами экрана.Но ничего не происходит.Это все еще 0, 0. Я попробовал это всеми способами, которые я знаю, ничего действительно не работает ...
Кто-нибудь знает, что делать?Это действительно помогло бы мне.:)
РЕДАКТИРОВАТЬ
Я только что нашел решение ... Я не знаю почему, но это работает, только если это в новом методе ... странно.
- (void)logoShow {
UITapGestureRecognizer *resetGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(resetValues)];
UIImage *logoText = [UIImage imageNamed:@"logotext@2x.png"];
logoTextView = [[UIImageView alloc] initWithFrame:CGRectMake(389, -50, logoText.size.width/1.35, logoText.size.height/1.35)];
logoTextView.center = CGPointMake(389, -50);
logoTextView.image = logoText;
logoTextView.alpha = 1;
[logoTextView addGestureRecognizer:resetGesture];
[self.view insertSubview:logoTextView atIndex:15];
// LOGO TEXT ANIMATION
[UIView beginAnimations:@"Logo Text Animation" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
[UIView setAnimationDelay:4.5];
[UIView setAnimationDuration:0.5];
logoTextView.alpha = 1;
logoTextView.center = CGPointMake(389, 22);
[UIView commitAnimations];
[logoTextView setUserInteractionEnabled:YES];
}