3

私は iOS 開発が初めてなので、私の質問に注意してください。

私のタイトルが言ったように、

UIViewどうすれば(アニメーションで)非表示および表示できますUIActionSheetか?
グーグルで検索したところ、芽は有効な解決策を見つけられませんでした..

注: 次の行を見つけましたが、役に立ちません。

4

4 に答える 4

7

次のコードを試してください:

- (IBAction)showTapped:(id)sender {
    hideButton.enabled=YES;
    showButton.enabled=NO;
    [UIView animateWithDuration:.5 animations:^{
        subView.frame=CGRectMake(0, 225, subView.frame.size.width, subView.frame.size.height);
    }];
}

- (IBAction)hideTapped:(id)sender {
    hideButton.enabled=NO;
    showButton.enabled=YES;
    [UIView animateWithDuration:.5 animations:^{
        subView.frame=CGRectMake(0, 480, subView.frame.size.width, subView.frame.size.height);
    }];
}
于 2013-06-10T05:39:21.867 に答える
4

この場合、できることはUIView、ウィンドウに を追加して、必要なときに表示することです。したがって、最初に行う必要があるのは、 のオブジェクトを作成することですAppDelegate

AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication]delegate];

そして、次のようなビューを作成します

 CGRect frame = CGRectMake(0, 460, 320, 300);
 UIView *ActionView = [UIView alloc]initWithFrame:frame];

これは、ビューをウィンドウに表示するためのものです。ビューのy 座標は、画面の寸法よりも下にある必要があるため、ビューを特定のレベルに戻してから再度送信することができます。

[appDelegate.window addSubview:ActionView];

次に、これらのカスタム アニメーションを追加して、ビューの表示と非表示を切り替えるだけです

あなたの見解を明らかにするには

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:0.25];
CGRect rect = [ActionView frame];
rect.origin.y = -300;
[ActionView setFrame:rect];
[UIView commitAnimations];  

ビューを非表示にするには

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:0.25];
CGRect rect = [ScrollView frame];
rect.origin.y = 460;
[ScrollView setFrame:rect];
[UIView commitAnimations];

最後に、独自の寸法とフレームに調整できます。お役に立てれば...

于 2013-06-10T05:32:35.307 に答える
0

これを達成するには、以下の手順に従います。

1) UIViewpickerView という名前をドラッグし、ビュー内に追加します。

2) ドラッグUIToolBar(必要な場合)、ビュー内に追加します。

3) をドラッグUIPickerViewし、ビュー内に追加します。

4) IBOutletpickerView に接続します。

5) コード内に以下のメソッドを実装します。

-(void)viewDidAppear:(BOOL)animated{
    self.pickerView.frame = CGRectMake(0, self.view.frame.size.height+300, self.view.frame.size.width, 300);
}

-(void)hidePickerView{
    self.isPickerHidden = YES;
    [UIView animateWithDuration:0.5 animations:^{
        self.pickerView.frame = CGRectMake(0, self.view.frame.size.height+300, self.view.frame.size.width, 300);
    }];
}

-(void)showPickerView{
    self.isPickerHidden = NO;
    [UIView animateWithDuration:0.5 animations:^{

        self.pickerView.frame = CGRectMake(0, self.view.frame.size.height-300, self.view.frame.size.width, 300);
    }];
}

//Assuming you are tapping on cell, or you can use button connecting to the IBAction as well  
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    if (self.isPickerHidden){
      [self showPickerView];
    }
    else{
        [self hidePickerView];
    }
}
于 2016-04-11T02:44:31.417 に答える
0

この解決策を試してください....うまくいきます

#pragma mark - Date Selector View PresentModelView with Transparent ViewController

- (void) showModal:(UIView*) modalView {

    UIWindow *mainWindow = [(AppDelegate *)[UIApplication sharedApplication].delegate window];

    CGPoint middleCenter;


    middleCenter = CGPointMake(modalView.center.x, modalView.center.y);

    CGSize offSize = [UIScreen mainScreen].bounds.size;

    CGPoint offScreenCenter = CGPointMake(offSize.width / 2.0, offSize.height * 1.5);
    modalView.center = offScreenCenter;

    if ([[mainWindow subviews] containsObject:modalView]) {
        [modalView removeFromSuperview];
    }


    [mainWindow addSubview:modalView];

    [mainWindow bringSubviewToFront:modalView];
    // Show it with a transition effect
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.3];
    // animation duration in seconds
    modalView.center = middleCenter;
    [UIView commitAnimations];

}

// Use this to slide the semi-modal view back down.
- (void) hideModal:(UIView*) modalView {

    CGSize offSize = [UIScreen mainScreen].bounds.size;
    CGPoint offScreenCenter = CGPointMake(offSize.width / 2.0, offSize.height * 1.5);
    [UIView beginAnimations:nil context:(__bridge void *)(modalView)];
    [UIView setAnimationDuration:0.3];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDidStopSelector:@selector(hideModalEnded:finished:context:)];
    modalView.center = offScreenCenter;
    [UIView commitAnimations];

}

- (void) hideModalEnded:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {

    UIView *modalView = (__bridge UIView *)context;
    [modalView removeFromSuperview];
}
于 2015-06-10T10:16:54.720 に答える