0

追加されたサブビューを親ビューから削除するためにこれが機能しない理由がわかりません。長押しアクションが終了したら削除してほしい。私は NSLog でテストしましたが、ジェスチャが終了として適切に登録されていることはわかっていますが、サブビューは削除されていません。

-(void)addSubview:(UILongPressGestureRecognizer *)gesture {
    NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"overlayView" owner:self     options:nil];
    UIView *subView = [subviewArray objectAtIndex:0];

    if (gesture.state == UIGestureRecognizerStateBegan) {
        [self.view addSubview:subView];
        }
    if (gesture.state == UIGestureRecognizerStateEnded) {
        [subView removeFromSuperview];
        }    
}

必要な機能:

longpress の開始: サブビューを追加します。
長押し終了: サブビューを削除します。

4

1 に答える 1

5

.h ファイルで UIView *subview を宣言し、viewDidLoad に以下の行を追加して、問題を解決してください。

 NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"overlayView" owner:self     options:nil];
    UIView *subView = [subviewArray objectAtIndex:0];

その後:

-(void)addSubview:(UILongPressGestureRecognizer *)gesture {
    if (gesture.state == UIGestureRecognizerStateBegan) {
        [self.view addSubview:subView];
        }
    if (gesture.state == UIGestureRecognizerStateEnded) {
        [subView removeFromSuperview];
        }    
}
于 2013-10-07T09:29:52.160 に答える