SubView слайд в анимации, iphone - PullRequest
       1

SubView слайд в анимации, iphone

15 голосов
/ 08 сентября 2011

У меня есть UIview, содержащий две кнопки UIB.

-(void)ViewDidLoad
{
    geopointView = [[UIView alloc] initWithFrame:CGRectMake(0, 350, 120, 80)];
    geopointView.backgroundColor = [UIColor greenColor]; 

    UIButton *showGeoPointButton = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
    showGeoPointButton.frame = CGRectMake(0, 0, 120, 40);
    showGeoPointButton.titleLabel.font = [UIFont systemFontOfSize:13.0];
    [showGeoPointButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[showGeoPointButton addTarget:self action:@selector(showPlaces:) forControlEvents:UIControlEventTouchUpInside];

    UIButton *SaveButton = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain] 
    SaveButton.frame = CGRectMake(0, 40, 120, 40);
    SaveButton.titleLabel.font = [UIFont systemFontOfSize: 15.0];
    [SaveButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [SaveButton addTarget:self action:@selector(savePlacePopUp) forControlEvents:UIControlEventTouchUpInside];

    [geopointView addSubview:showGeoPointButton];
    [geopointView addSubview:SaveButton];
}

Я хочу анимировать слайд UIview при вызове следующего метода.

-(void) showAnimation

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

-(void) showAnimation{
    [UIView animateWithDuration:10.0 animations:^{
        [self.view addSubview:geopointView];
    }];
}

Спасибо за любую помощь заранее.

1 Ответ

60 голосов
/ 08 сентября 2011

Вам необходимо добавить подпредставление со значением кадра, с которого вы хотите, чтобы анимация начиналась (за кадром?), А затем изменить значение кадра внутри блока анимации. Кадр будет меняться с течением времени, вызывая появление движения. Представление уже должно быть подпредставлением - я не верю, что добавление подпредставления - это то, что вы можете анимировать, это не имеет смысла.

-(void)showAnimation {

    [self.view addSubview:geopointView]
    geopointView.frame = // somewhere offscreen, in the direction you want it to appear from
    [UIView animateWithDuration:10.0 
                     animations:^{
                         geopointView.frame = // its final location
                     }];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...