Как оживить развернуть и уменьшить UiView на месте? - PullRequest
3 голосов
/ 22 июня 2011

У меня есть серия uiviews, и я хочу создать анимацию, в которой событие нажатия кнопки расширит пользовательский вид снизу и откроет дополнительную информацию о представлении.Еще одно нажатие кнопки уменьшит изображение до исходного.

Как мне продолжить это?

Существует ряд видов просмотра, выложенных в виде горизонтальной прокрутки, как прикрытие.Я хочу отображать дополнительную информацию о каждом пользовательском просмотре при нажатии кнопки.

Оставьте комментарий, если вам нужна дополнительная информация.

TIA,

Praveen S

Ответы [ 2 ]

9 голосов
/ 22 июня 2011

Этот код расширит ваш взгляд ... сделайте наоборот, чтобы уменьшить его

CGRect tempFrame=view.frame;
tempFrame.size.width=200;//change acco. how much you want to expand
tempFrame.size.height=200;
[UIView beginAnimations:@"" context:nil];
[UIView setAnimationDuration:0.2];
view.frame=tempFrame;
[UIView commitAnimations];
1 голос
/ 03 сентября 2013

Для этого используйте этот код

В .h файле

#import <UIKit/UIKit.h>
@interface ExpandedViewController : UIViewController
{
    UIView * expandiView;
    BOOL viewExpanded;
}
- (IBAction)expandOrShrinkView:(id)sender;
@end

и в вашем .m файле

- (void)viewDidLoad
{
    [super viewDidLoad];

    aview = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 100, 100)];
    aview.backgroundColor = [UIColor redColor];
    [self.view addSubview:aview];

    viewExpanded = NO;
}

И в действие вашей кнопки добавьте этот код

- (IBAction)expandOrShrinkView:(id)sender {
    [UIView animateWithDuration:0.8f delay:0.0f options:UIViewAnimationOptionTransitionNone animations: ^{
        if (!viewExpanded) {
            viewExpanded = YES;
           aview.frame = CGRectMake(10, 10, 100, 200);
        }else{
            viewExpanded = NO;
           aview.frame = CGRectMake(10, 10, 100, 100);
        }
    } completion:nil];  
}

Когда вы нажимаете кнопку первый раз, она расширяет вид снизу, а когда вы нажимаете кнопку второй раз, она сжимает вид снизу, изменяя размер кадра в соответствии с вашими потребностями.

И если вы хотите использовать функцию сжатия в другой кнопке, чем использовать два метода действия, как это

- (IBAction)expandView:(id)sender {
        [UIView animateWithDuration:0.8f delay:0.0f options:UIViewAnimationOptionTransitionNone animations: ^{
               aview.frame = CGRectMake(10, 10, 100, 200);
        } completion:nil];  
    }

- (IBAction)ShrinkView:(id)sender {
        [UIView animateWithDuration:0.8f delay:0.0f options:UIViewAnimationOptionTransitionNone animations: ^{
               aview.frame = CGRectMake(10, 10, 100, 100);
        } completion:nil];  
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...