0

過去6か月間このフォーラムに潜んでいますが、ここで助けを求めるのはこれが初めてです。ですから、ここでは簡単なもので、これまで何度も聞かれたことは知っていますが、どれも本当に役に立った簡単な答えが付いていません。親切にも親切な人が私やこれを必要とする他の多くの人に役立つヒントを教えてくれることを願っています。

だからこれは私がすでにアウトレットを隠すためにしたことです:

ヘッダーファイル内:

@interface tapgestureViewController : UIViewController {

IBOutlet UIButton *btn1;
IBOutlet UIButton *btn2;
IBOutlet UITextView *text;

}

-(IBAction)hideOutlets;

@end

および実装ファイル:

-(IBAction)hideOutlets:(UITapGestureRecognizer*)singleTap {

btn1.hidden = YES;
btn2.hidden = YES;
text.hidden = YES;

}

私の簡単な質問は、ユーザーが画面をもう一度タップした場合に、コンセントを再表示/再表示する方法です。

4

1 に答える 1

1

これを実現する最も簡単な方法は、次を使用することだと思います。

-(IBAction)hideOutlets:(UITapGestureRecognizer*)singleTap 
{
    btn1.hidden = !btn1.hidden;
    btn2.hidden = !btn2.hidden;
    text.hidden = !text.hidden;
}

これにより、現在のブール状態が無効になり、完了です:)

編集:タッチがフォームのどこかにあるが、ボタンやテキストフィールドにはないかどうかを確認するには、これを使用してみてください。動作するはずです。もう使用する必要はありませUITapGestureRecognizerん。

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    CGPoint loc = [touch locationInView:[touch view]];
    if (!(CGRectContainsPoint(btn1.frame, loc) || CGRectContainsPoint(btn2.frame, loc) || CGRectContainsPoint(text.frame, loc)))
    {
        btn1.hidden = !btn1.hidden;
        btn2.hidden = !btn2.hidden;
        text.hidden = !text.hidden;
    }
}
于 2012-04-29T18:58:11.893 に答える