角を丸めたStoryboard
を使用してビューを作成しました。しかし、私はiPhone
のためにこれを削除したいと思います。私はこれを行うには、ユーザー定義のランタイム属性を使用していると私はiPhone
のバリエーションを作ることができるかと思う。特性のユーザ定義ランタイムアトリビュート
編集:私は、コードでこれを行うことができます知っているが、それは視覚的なものなので、それは愚かな音やストーリーボードファイルがこの変化を行うには、適切な場所のように聞こえます。
角を丸めたStoryboard
を使用してビューを作成しました。しかし、私はiPhone
のためにこれを削除したいと思います。私はこれを行うには、ユーザー定義のランタイム属性を使用していると私はiPhone
のバリエーションを作ることができるかと思う。特性のユーザ定義ランタイムアトリビュート
編集:私は、コードでこれを行うことができます知っているが、それは視覚的なものなので、それは愚かな音やストーリーボードファイルがこの変化を行うには、適切な場所のように聞こえます。
ストーリーボードでは考えられません。特定のビューをロードするときに、コード内のデバイスタイプをチェックしてプロパティをオーバーライドするだけで済みます。
など。
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if UIDevice.current.model == "iPhone" {
// reset attributes
}
}
extension CALayer {
var borderUIColor: UIColor {
set {
if UIDevice.current.model == "iPhone" {
self.borderColor = newValue.cgColor
}
// do whatever you want
}
get {
return UIColor(cgColor: self.borderColor!)
}
}
}
、属性にアクセスするためにlayer.borderUIColorを使用しています。
属性を再定義して、設定方法のデバイスタイプがこの問題を解決すると判断してください。これがあなたの問題を解決することを願っています
特定のデバイス/プラットフォームのランタイム属性のみを使用しようとしていますか? – rmooney
はい、私は "Variality for Vary"を使っていくつかのバリエーション(制約を使ってできるように)の属性を持っていたいと思います。 –
この時点ではXCodeのようには見えません。 XCodeでストーリーボードXMLのuserDefinedRuntimeAttributesキーにバリエーションキーを手動でコピーしようとしましたが、ストーリーボードをリロードしたときにコードが無視されてXCodeが削除されたようです。これをコードで行うほうが簡単かもしれません。 – rmooney