2017-02-23 13 views
2

角を丸めたStoryboardを使用してビューを作成しました。しかし、私はiPhoneのためにこれを削除したいと思います。私はこれを行うには、ユーザー定義のランタイム属性を使用していると私はiPhoneのバリエーションを作ることができるかと思う。特性のユーザ定義ランタイムアトリビュート

enter image description here

編集:私は、コードでこれを行うことができます知っているが、それは視覚的なものなので、それは愚かな音やストーリーボードファイルがこの変化を行うには、適切な場所のように聞こえます。

+0

特定のデバイス/プラットフォームのランタイム属性のみを使用しようとしていますか? – rmooney

+0

はい、私は "Variality for Vary"を使っていくつかのバリエーション(制約を使ってできるように)の属性を持っていたいと思います。 –

+1

この時点ではXCodeのようには見えません。 XCodeでストーリーボードXMLのuserDefinedRuntimeAttributesキーにバリエーションキーを手動でコピーしようとしましたが、ストーリーボードをリロードしたときにコードが無視されてXCodeが削除されたようです。これをコードで行うほうが簡単かもしれません。 – rmooney

答えて

0

ストーリーボードでは考えられません。特定のビューをロードするときに、コード内のデバイスタイプをチェックしてプロパティをオーバーライドするだけで済みます。

など。

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 
    if UIDevice.current.model == "iPhone" { 
     // reset attributes 
    } 
} 
0
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を使用しています。

属性を再定義して、設定方法のデバイスタイプがこの問題を解決すると判断してください。これがあなたの問題を解決することを願っています

関連する問題