1

ここに画像の説明を入力

真ん中の画面、つまり新しいツイートを作成するために表示されるアラートを再現しようとしています。私はそれをカスタムで複製しようとしましたUIAlertViewが、それには多くのサブクラス化が必要であり、メインビューの上に表示される単純なものである可能性があるのではないかとUIViewController思いました...仲間の iOS 開発者からの専門的な考えが必要です.

ありがとうございました。

4

1 に答える 1

1

iPad の場合:

UIViewControllerでそれを行うことができます。

  • 上記のイメージに従ってUIを設計する必要があります。
  • 次に、モーダル プレゼンテーション スタイルをUIModalPresentationFormSheet
  • そして、それを使用して提示します- (void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))

お気に入り:

UIViewController *viewC = [[UIViewController alloc] init];
viewC.view.frame = //set the frame;
viewC.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentViewController:viewC animated:YES completion:nil];

iPhone の場合:

UIViewを使用してそれを行うことができます。

これを行うには、次のコードを使用できます。

インターフェイスでプロパティを宣言する

@property (nonatomic, strong) UIView *views;

//ビューを追加

- (void) showView
{
   UIToolbar *toolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 35)];
        UIBarButtonItem *bar = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(remove)];
        toolbar.items = [NSArray arrayWithObject:bar];
        _views = [[UIView alloc] initWithFrame:CGRectMake(0, -300, self.view.bounds.size.width, self.view.bounds.size.height/3)];
        [_views addSubview:toolbar];
        [_views setBackgroundColor:[UIColor grayColor]];
        [self.view addSubview:_views];
        [UIView animateWithDuration:0.7
                              delay:0.0
                            options:UIViewAnimationCurveLinear
                         animations:^{

                             _views.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height/3);
                         }
                         completion:^(BOOL yes){
                             NSLog(@"YO");

                         }];
        [UIView commitAnimations];
}

//ビューを削除

- (void)remove
{
    [UIView animateWithDuration:0.7
                          delay:0.0
                        options:UIViewAnimationCurveLinear
                     animations:^{
                         _views.frame = CGRectMake(0, -500, self.view.bounds.size.width, self.view.bounds.size.height/3);
                     }
                     completion:^(BOOL yes){
                         NSLog(@"YA");

                     }];
    [UIView commitAnimations];
}
于 2013-07-03T09:42:56.723 に答える