2

iPhone アプリをデバッグしていますが、完全には理解できないものがあります。

ユーザーの選択に基づいて、UIView が表示または非表示になります。現在のコードは、 および でビューを表示または非表示にし[view setHidden:NO]ます[view setHidden:YES]。これは機能しません。視覚的には、これらのステートメントが単に無視されているように見えます。ただし、これらをそれぞれ および に変更するview.hidden = NOview.hidden = YES、すべてが期待どおりに機能します。

2 つの構文は同等だと思っていましたが、どうやらそうではないようです。他のすべての属性 ( textfontなど) については、どちらも同じように機能しhiddenます。

編集:これが私のコードの一部のコピー/貼り付けです。iPhoneシミュレーター5.0を使用してXCode 4.3で作業しています

これが私のプロジェクトの一例です。

IBOutlet UIView *panel;    //Connected in interface builder

===========

- (void)makePanelVisible:(BOOL)visible
{
    [panel setHidden:!visible];    //this does not work
    panel.hidden = !visible;       //this does work correctly.
}
4

3 に答える 3

0

ビューを非表示にするかどうかを設定します。

- (void)setHidden:(BOOL)flag

レシーバーが非表示としてマークされているかどうかを返します。

- (BOOL)isHidden

隠し=はい; setHidden:YES と同じです。違いは、すぐに非表示を YES にすることです。一方、sethidden ビューはウィンドウから消え、非表示に設定されているため、入力イベントを受け取りません。ただし、スーパービューのサブビューのリストに残り、通常どおり自動サイズ変更に参加します。

于 2012-05-24T16:15:07.183 に答える
0

このことを振り返ってみると、ほぼ 3 年前に同じ問題に遭遇したことを覚えています。その頃、iPhone 3 (3G でさえありません) が大流行していました。なぜこれが起こるのかはわかりませんが、実際に起こるので、「ドット」表記を使用してプロパティを設定することで対処しています。これは、「壊れていない場合は修正しないでください」の 1 つだと思います (壊れているようですが、簡単な方法があるので、それを使用しています)。

于 2012-05-28T08:05:58.403 に答える
-1

hidden は UIView のプロパティです。[panel setHidden:YES] を記述したときに、プロパティを非表示に設定するメソッド setHidden を呼び出そうとします。メソッドが UIView に存在しないため、機能しません: https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/doc /uid/TP40006816

私はいつも「view.hidden = x」と書いてプロパティを設定しています。

お役に立てば幸いです

于 2012-05-24T14:46:20.010 に答える