Development新成人のみなさん、おめでとうございます。大人になるのは難しいことだけど、自由に自分の人生を歩んでほしいと思います。}というプロパティがある。これはすべてのUIControlの状態を示す。UIControlStateは同時に複数の状態を保持できるbit-maskであり、SwiftにおいてはOptionSetTypeとして表現される。.Disabledでありかつ.Selectedであることが起こり得る。}は、読み込みしかできない。ヘッダには以下のようにある。Boolといったプロパティから合成されることになっている。新しく状態を作るここでUIControlState.Applicationというものがあることに気付いただろうか。ドキュメントには以下のように書かれている。use.つまりこの.Applicationは、私たちのアプリケーションで自由に使ってよいことになっている。Objective-Cのヘッダを見ると以下のように定義されている。bit分の幅が用意されていることがわかる(いうまでもないが、16進数で二桁分であるから、2進数で表現すれば8桁分となる)。この範囲を自由に割り当てて、新しく状態を増やしてみよう。一度でも押されたことが記録されるボタンを作る実際の例を示す。いうプロパティを追加してある。}をオーバーライドして新しい状態であるUIControlState.Visitedを追加する。(visitedが設定された後に表示を更新する必要があるだろうから、didSetでなるべく自身を更新するようにしている。UInt)とするか、print(UIControlState.Application.contains(.Visited))とする)。オーバーライドしているstateプロパティでは、OptionSetTypeのunionメソッドを利用して、元の値との論理和を作っている。利用する側は、単にvisitedプロパティを操作するだけでよい。この場合は事前に色を設定している。Webのリンクのように、一度でも訪れたページへのリンクが青から紫になる、というのを模している。UIButtonのsetXxx(_:forState:)といったメソッドは、このようにUIControlState.Applicationの範囲に定義された独自の状態に対しても機能する。事前に状態毎に設定しておくだけで、自動的にそれが反映されるのである。}プロパティを、新たな状態を作って拡張する方法を示した。この方法によって、UIControlの状態を統一的に表すことができる。既存のコードで、UIControlやそのサブクラスに何らかの状態を増やしたというつもりで、何度もsetXxx(_:forState:)のようなメソッドを呼び出していたら、それはおおよそ間違いであるとみられる。同様にUIControlEventsにも.ApplicationReservedという値があり、独自のイベントを作ることができる。12:24UIControlにOptionSetTypeで状態を追加するTweet関連記事2016-12-27年末年始に飲み過ぎないために諸君は酒が好きだろうか。2.2寒さも和らぎ、日によっては春の訪れを感じさせる今日この頃、...2016-01-02Swiftを使って型付けされた画面遷移がしたい皆さん今朝はどんな夢をみましたか。検索リンクはてなブログブログをはじめる(無料)お知らせ最新記事SwiftUIではSingletonの代わりにEnvironmentを使うことができる紛らわしい文字列をもっと紛らわしくするapple/swift-formatを試す息子にカメラを与えるCoreImage.CIFilterBuiltins月別アーカイブはてなブログをはじめよう!cockscombさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。