Я создаю виды, элементы пользовательского интерфейса и т. Д. Программно. Я пытаюсь анимировать представления, когда они добавляются или удаляются. Проблема в том, что анимируется только кнопка UIButton *, и она анимирована неправильно. Я имею в виду, что название кнопки происходит сверху, а сама кнопка идет справа от экрана.Странная анимация во время просмотра коммутатора
Пожалуйста, смотрите ниже код
AppDelegate.h
#import <UIKit/UIKit.h>
#import "TViewController.h"
@interface AppDelegate : UIResponder <UIApplicationDelegate>
{
TViewController *tv;
}
@property (strong, nonatomic) TViewController *tv;
@property (strong, nonatomic) UIWindow *window;
@end
AppDelegate.m .....
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
self.window.backgroundColor = [UIColor whiteColor];
self.tv = [[TViewController alloc]initWithNibName:@"TViewController" bundle:nil];
self.window.rootViewController = self.tv;
[self.window makeKeyAndVisible];
return YES;
}
TViewController.h
#import <UIKit/UIKit.h>
#import "Elements.h"
@interface TViewController : UIViewController
{
Elements *el;
}
@property (nonatomic, retain) Elements *el;
@end
TViewController.m
-(void)loadView
{
self.view = [[UIView alloc]initWithFrame:[UIScreen mainScreen].applicationFrame];
self.el = [[Elements alloc]
initWithNibName:@"Elements"
bundle:nil];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:3.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view.superview cache:YES];
[self.view addSubview:self.el.view];
self.view.backgroundColor = [UIColor grayColor];
[self.view removeFromSuperview];
[UIView commitAnimations];
}
Elements.m
self.view = [[UIView alloc]initWithFrame:[UIScreen mainScreen].applicationFrame];
UILabel *howManyUsersLabel = [[UILabel alloc]initWithFrame:CGRectMake(10, 20, 300, 150)];
howManyUsersLabel.text = @"Label ...";
[self.view addSubview:howManyUsersLabel];
UIPickerView *playersPickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(10, 150, 250, 100)];
playersPickerView.delegate = self;
playersPickerView.showsSelectionIndicator = YES;
[self.view addSubview:playersPickerView];
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(20, 370, 280, 50);
[button setTitle:@"Button" forState:UIControlStateNormal];
[self.view addSubview:button];
Я делаю это. Итак, это единственный вид анимации, который можно применять для просмотра при использовании addSubview? – objlv
Извините, я неправильно понял ваш код анимации - я думал, что вы делаете анимацию другого типа. Я обновил свой ответ. –
См. Обновленный код TViewController.m. Я не заметил никаких изменений в анимации. – objlv