2015-07-17 3 views
-1

Я добавляю subView в свой супервизор. Он должен появиться на экране с анимацией.Анимация представления

Код:

HomeListingView=[[UIView alloc]initWithFrame:CGRectMake(10,10,300 , 300+190)]; 
[HomeListingView setBackgroundColor:[UIColor whiteColor]]; 
[UIView animateWithDuration:0.1 delay:0.5 options:UIViewAnimationOptionCurveEaseInOut animations:^{ 

    [scrollSell addSubview:HomeListingView]; //scrollsell is the object of UIScrollView 

}completion:^(BOOL finished){ 

    NSLog(@"Done"); 

}]; 

Могу ли я сделать что-то здесь не так. Или есть другой способ оживить?

+0

вам необходимо установить рамку в сторону блок анимации. – iBhavin

+0

Я сделал это, но это тоже не работало. @ IBhavin –

+0

так ... пусть начнется начало: __что бы вы хотели оживить? __ добавление subview не является анимируемой процедурой ... так что на самом деле ваша концепция совершенно неверна Вот. – holex

ответ

1

Предполагая, что вы хотите переместить HomeListingView на на экране измените код на что-то вроде:

HomeListingView=[[UIView alloc]initWithFrame:CGRectMake(-300, -300 + 190, 300 , 300+190)]; // Create view with frame initially off screen 
    [HomeListingView setBackgroundColor:[UIColor whiteColor]]; 
    [scrollSell addSubview:HomeListingView]; //scrollsell is the object of UIScrollView 

    [UIView animateWithDuration:0.1 delay:0.5 options:UIViewAnimationOptionCurveEaseInOut animations:^{ 

     HomeListingView.frame = CGRectMake(10,10,300 , 300+190)]; // Change the frame to move it on screen 

    }completion:^(BOOL finished){ 
     NSLog(@"Done"); 
    }]; 
+0

Да! Я сделал что-то вроде этого, и он работает @bobnoble –

+0

Я не большой поклонник анимации «фрейма» из-за проблем с производительностью, почему в этом случае недостаточно «центра»? – holex

+0

@holex анимация путем обновления 'center' будет работать так же хорошо - только началось с того, что OP работал и обновил это. Какая у вас информация, что использование 'center' улучшает производительность vs' frame'? – bobnoble

0

Вот так:

HomeListingView =[[UIView alloc]init]; 
    [HomeListingView setBackgroundColor:[UIColor redColor]]; 
    [self.sclCeel addSubview:HomeListingView]; //scrollsell is the object of UIScrollView 

    [UIView animateWithDuration:0.1 delay:0.5 options:UIViewAnimationOptionCurveEaseInOut animations:^{ 
     HomeListingView.frame = CGRectMake(10,10,300 , 300+190); // Set your view frame here. 
    }completion:^(BOOL finished){ 
     NSLog(@"Done"); 
    }]; 
0

В анимации блока необходимо изменить кадр, как на эффект анимации, вы сделали неправильную вещь смотрите это

UIView * view = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)]; 
    [self.view addSubview:view]; 
    [view setBackgroundColor:[UIColor redColor]]; 


    [UIView animateWithDuration:1.0 
        animations:^{ 
         view.frame = CGRectMake(view.frame.origin.x-25, view.frame.origin.y-25, view.frame.size.width+50, view.frame.size.height+50); 
        } completion:^(BOOL finished) { 

        }]; 
Смежные вопросы