2012-03-04 4 views
0

Я новый разработчик ios. Я хочу создать приложение ios, где я хочу добавить два вида. Сначала, когда начнется приложение, откроется первое представление. Будет кнопка. При нажатии на кнопку второе изображение отображается на экране слева направо, а не полноэкранном, а половина - на экране. Как я могу это сделать. Спасибо заранее.ui view transation слева направо

+0

Вы знаете о viewcontrollers и xib и о том, как создавать действия для кнопки? Какой XCode вы используете в настоящее время и для какой версии iOS вы хотите создать это приложение. – Ravin

ответ

1

На самом деле это довольно легко с помощью обертки анимации UIViewAndDithDuration. Если вы не знакомы с блоками, это также отличная возможность для изучения.

Во-первых, объявить два объекта UIView в .h и определить метод, который вы хотите подключить к кнопке:

@interface Example : UIViewController 
{ 
    UIView *_view1; 
    UIView *_view2; 
} 
@property (nonatomic, retain) UIView *view1; 
@property (nonatomic, retain) UIView *view2; 
-(IBAction)animateViews:(id)sender; 

@end 

Теперь в .m, определяют свои действия (обратите внимание, что это возвратные изменения типа в недействительным, но это подпись остается той же):

#import "Example.h" 

@implementation Example 
@synthesize view1 = _view1; 
@synthesize view2 = _view2; 

-(void)viewDidLoad { 
    //alloc and init views, add to view 
    self.view1 = [[UIView alloc]initWithFrame:[UIScreen mainScreen].bounds]; 
    self.view2 = [[UIView alloc]initWithFrame:CGRectMake(self.view.bounds.size.width, 0, self.view.bounds.size.width/2, self.view.bounds.size.height)]; 
    //Set the background color so we can actually see the views, the first will be grey, the second, black. 
    [self.view1 setBackgroundColor:[UIColor grayColor]]; 
    [self.view2 setBackgroundColor:[UIColor darkTextColor]]; 
    //add subview to main view 
    [self.view addSubview:self.view1]; 
    [self.view addSubview:self.view2]; 

    [super viewDidLoad]; 
} 

-(void)animateViews:(id)sender { 

     /*I absolutely love the UIView animation block, 
it's possibly the most helpful thing in terms of animation apple could have made. 
Any property changed inside this block (in this case, the frame property), 
is automatically animated for the duration you specify. 
It's even got a built in completion block! So cool.*/ 

    [UIView animateWithDuration:2.5 animations:^{ 
     [self.view1 setFrame:CGRectMake(0, 0, self.view.bounds.size.width/2, self.view.bounds.size.height)]; 
     [self.view2 setFrame:CGRectMake(self.view.bounds.size.width/2, 0, self.view.bounds.size.width/2, self.view.bounds.size.height)]; 
    }]; 

} 

@end 

Это должно оживить кадр первого взгляда, чтобы занять половину экрана, а затем анимировать второй вид на вид летать и взять другой половина. Обязательно подключите этот IBAction к кнопке в XIB, прежде чем запускать ее.

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