#Swiftバージョンの画面とフォントの色が合う

1909 ワード

Swiftバージョンの画面とフォントの色が合っています
この間ずっとSwiftを独学していました.iOSの開発はObjective-Cを使っていたので、C言語のようなマクロ定義方式に慣れていました.Swiftはより安全な言語として、C言語のマクロ定義を放棄し、プリコンパイル時にコードマクロが置き換えられる安全な隠れ病を効果的に防止しましたが、マクロ定義ができないわけではありません.ここではjavaのようにグローバル定数の定義を行うことができます.同じように便利で速いです.簡単なマクロは定数設定でいいです.複雑なマクロは関数を使って返す必要がありますが、使いやすいです.次に、仕事でまとめた経験で、Swiftバージョンの下4/4.7/5.5インチの画面の適合と、色の適合マクロをまとめました.
スクリーンスケールは、iphone 6のスクリーンサイズに基づいて、デバイスとiphone 6の比較によってスケールを返し、スケールによって横方向と縦方向のスケールを行います.
func Lhw_RateW() -> CGFloat{
  return (Lhw_ScreenW()/375)
}

高度に適しています.iphone 4/4 sはその後0.8+:1の割合でスケールされていないため、4インチスクリーンで一括処理されています(iphone 4の多くの開発会社は互換性をサポートしていません.私たちもあまり考えません):
func Lhw_RateH() -> CGFloat{
var heighttmp:CGFloat = 0.0
if Lhw_ScreenH() == 480 {
    heighttmp = 568
}else{
    heighttmp = Lhw_ScreenH()
}
return heighttmp/667
}

入力した値を使用して、異なる画面のズーム後のサイズを返します.
//W     
func Lhw_AdaptW(W: CGFloat) -> CGFloat {
    return W*Lhw_RateW()
}

//H  
func Lhw_SLAdaptH(H: CGFloat) -> CGFloat {
if H == 667 && Lhw_ScreenH() == 480 {
    return 568
}else{
    return H*Lhw_RateH()
}
}

また、lable、textfieldなどのコントロールをフォントに使用する必要がある場合は、次のfontスケールを考慮します.コントロールのサイズとフォントのサイズを一緒にスケールすると、1つのデバイスに完全に表示され、他のデバイスにも完全に表示されます.
func Lhw__font(fontSize:CGFloat) -> UIFont {
let fot =  UIFont.systemFont(ofSize: 12)
return  fot
}

次の操作を行います.
       var logolable = UILabel.init(frame: CGRect.init(x: 0, y: Lhw_AdaptH(H: 20), width: Lhw_AdaptW(W: 82), height: Lhw_AdaptW(W: 20)))
    logolable.font=Lhw__font(fontSize: 13)

コントロールの位置に注意する必要があります.サイズは親コントロールがスケールするかどうかを考慮する必要があります.また、サブコントロールをスケールする必要があるかどうかを考慮する必要があります.システムナビゲーションバーのように、tabbarという固定サイズのコントロールが親コントロールとして使用されている場合、サブスペースを配置するには、画像コントロールの横方向と縦方向をスケールしないことをお勧めします.画像も変形しないリソースアドレスです.https://github.com/qq690658234/ios-swift-1.0/tree/master