0

View( CupsViewController) があり、クリックするとLabel( TableView)AddressTableControllerが画面の下からスライドして下半分にとどまります。ではTableView、が押されたときに、 の値を変更して、アニメーション (つまり、下にスライド) で削除しOk Buttonたいと考えています。LabelTableView

これが私のコードです:

CupsViewController

クリック時に呼び出されるメソッドLabel

- (IBAction)showPop:(id)sender
{
    addressTableController = [[AddressTableController alloc]initWithStyle:UITableViewStyleGrouped];
    [addressTableController setDelegate:self];
    [[self view] addSubview:[addressTableController myTableView]];
    [UIView animateWithDuration:1.0 delay:0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{
        [[addressTableController myTableView] setFrame:CGRectMake(0, kScreenHeight * 0.5, kScreenWidth, kScreenHeight * 0.5)];
    } completion:nil];
}

が押されAddressTableControllerたときに呼び出されるメソッドButton

- (void)addressTableController:(AddressTableController *)viewController didChooseValue:(int)value {
    direccionLabel.text = [[[[myAppDelegate usuarioActual] cups] objectAtIndex:value] direccion];
    [addressTableController.view removeFromSuperview];
}

画像

ここに画像の説明を入力

ご覧のとおり、試してみましremoveFromSuperviewたが、何もしません。どうすればTableView下にスライドできますか?

4

1 に答える 1

1

あなたmyTableViewのプロパティは、プロパティで参照されているビューではなく、別のビューを返しているようですview。したがって、基本的には前者をサブビューとして追加します[[self view] addSubview:[addressTableController myTableView]];が ( )、後者を削除しようとします ( [addressTableController.view removeFromSuperview];)。

やるだけ

[[addressTableController myTableView] removeFromSuperview];

それ以外の

[addressTableController.view removeFromSuperview];

どうぞ。歓声メイト!:)


PSビューをアニメーション化する場合は、次のようにできます

[UIView animateWithDuration:1.0 delay:0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{
    // animation code...
} completion:^(BOOL finished) {
    [[addressTableController myTableView] removeFromSuperview];
}];
于 2013-08-07T08:55:36.297 に答える