検索

ホームページ  >  に質問  >  本文

git - iOS开发隐藏一个View是直接设置hidden属性,还是将frame设置为0

这两种方式,效果一样?我指的是性能方面

天蓬老师天蓬老师2772日前1291

全員に返信(11)返信します

  • 天蓬老师

    天蓬老师2017-04-17 17:42:45

    Hidden は確かに非常に便利ですが、今日使ってみると、ロジックが難しいというわけではなく、追加するときに制御するのが難しいことがわかりました。親ビューへのビュー。以前に追加した場合、そのビューは下にあるため、絶対にクリックできません。そのため、その上のビューをクリックする必要があるとき、ビューは消えますが、ビュー自体にはボタンがあります。イベント応答も必要なので、それが上にない場合は、もちろん最初のレイヤーにすることもできます。これは試していませんが、フレームを使用できることは知っています。作り方は上にありますが、実際に隠された部分は下にあります。

    この状況は、BaseViewcontroller が使用されているためです (ViewCointroller が継承され、スタックを容易にするためにマイクロ UInavigationViewcontroller が追加されています)。When When MoreBtn.hidden == NO。 , このビューであるviewWillAppear内にMoreViewを作成します。 OK、必要なのは、MoreBtn をクリックすると、MoreView が 1 回のクリックで表示され、別の場所をクリックすると MoreView も消えるということです。最初は非常に簡単だと思いました。 touchBegin を使用すれば問題ありませんが、実際には、親ビュー内のビューのみが応答する必要があります。ナビゲーション バーを除く現在の viewController は、BaseViewcontroller を継承した後に応答するとは考えないでください。どこをクリックしても、イベント応答にクリックイベントを追加する必要があります。Hidden を使用すると、フレームを設定することしかできません。

    もともと違いを探したかったのですが、タイトルを見てすぐに議論するようになりました。

    ===================
    ごめんなさい、前に間違った答えをしてしまいました 後でそれが原因ではないことが分かりました。というのがタッチメソッドの理由で、そのビューもself.viewに属しているので、タッチメソッドで消したいときはクリックすると消えてしまうのは間違いなのでCGpointを使うように規定しました。クリック範囲内の がナビゲーションバー範囲に含まれると消えてしまいます。本当に愚かな方法です。別の良い方法があれば、もう一度勉強しましょう。申し訳ありませんが、hidden と Frame の機能は実際に使用できるようです。もしかしたら、他に探るべきことがあるかもしれません。さあ

    返事
    0
  • キャンセル返事