6

UIImageプログラムで をレンダリングし、Apple Watch に表示したいWKInterfaceImage、その高さと幅を「コンテナに相対的」に設定します(基本的に画面スペース全体を占めるようにします)。WKInterfaceImageの幅と高さを取得するにはどうすればよいですか? 私が見る限り、拡張機能のコードからアクセスできるプロパティはありframeませんborderlayerでは、この情報を取得する適切な方法は何ですか?

奇妙なことに、setWidth メソッドと setHeight メソッドがあることがわかりましたが、対応する getter メソッドが見つかりません。

結局のところ、私は基本的にこれに相当するウォッチキットを探しています:

@IBOutlet weak var imageView: UIImageView!
//...
var width = imageView.frame.width
var height = imageView.frame.height
4

2 に答える 2

7

これは、WatchKit に関するよくある誤解です。

このタイプの方法で実行時データを照会することはできません。その理由は、値を読み取る必要があるたびに Watch に ping を実行することを Apple が望んでいないためです。彼らは、バッテリー寿命を可能な限り最適化したいと考えています。代わりに、の幅と高さを「知る」必要がありますWKInterfaceImage。ストーリーボードで定義したので、それがすでに何であるかを正確に把握できます。Xscopeは、サイズを正確に把握するのに非常に役立ちます。WKInterfaceControllerサイズがわかったら、実行時にデータを取得できるように、そのサイズをに格納する必要があります。

class ImageInterfaceController : WKInterfaceController {
    let imageSize38mm = CGSize(width: 100, height: 100)
    let imageSize42mm = CGSize(width: 120, height: 120)
}

iOS アプリと同じように、実行時にレイアウトとサイズ情報をクエリできないという事実に光を当てるのに役立つことを願っています。

于 2015-03-11T15:56:53.480 に答える
1

残念ながら、画像の幅と高さをプログラムで設定することはできません。画像モードをコンテンツに合わせたサイズに設定し、コンテナ ビューにも同じように設定します。コンテンツに合わせてサイズが変更されます。

クラス参照から利用可能な属性のみを引用する ここに画像の説明を入力

于 2015-03-11T07:01:30.143 に答える