2017-11-12 4 views
0

私はnameLabelを持っていると私はラベル

@IBOutlet weak var nameLabel: UILabel! 
nameLabel.font = UIFont(name: "Georgia-bold", size: 18) 

としてフォントを設定することができますを収集するためのフォントを設定すると、私は一度にラベルを収集するために同じことを行うことができます方法はあり、

@IBOutlet weak var collectionNameLabels: [UILabel]! 
+0

私はこれが配列型であるため、一度にそれを行うことができるとは思いません。だから反復する必要がある。 – Yongjoon

+0

ええと、それは – Coder221

+3

のように見えるループを使って、ラベルごとにフォントを繰り返して割り当てます。私はこれのためのショートカットがないと思う。 –

答えて

3

アプリでxibまたはstoryboardから作成されたすべてのラベルのフォントを変更する場合は、

UILabel.appearance().font = UIFont(name: "Georgia-bold", size: 18) 

Bあなたが@Sivajee Battinaが言ったように、collectionNameLabelsのフォントだけを変更したいのであれば、各ラベルのフォントを変更するためにループを使わなければならないと思います。

for label in self.collectionNameLabels { 
    label.font = UIFont(name: "Georgia-bold", size: 18) 
} 
+0

私は上記と同じことをしましたが、最初の選択されたラベルだけが変更され、残っているラベルは同じで、多分forEachを使うべきです。 – Coder221

+0

@ Coder221 forEachと私の上記の方法は同じです。 '@ IBOutlet'が' UILabel! 'ではなく' [UILabel]! 'であることを確認してください。接続を再度確認する必要があります。上のコードは私とうまく動作します。 – trungduc

+0

はい、Xcodeではバグのようですが、すべてのラベルを1つずつドラッグしてコレクションに接続する必要があります。 – Coder221

2

複数回変更する場合は、そのプロパティを作成すると便利です。

var labelFont: UIFont! { didSet { labels.forEach { $0.font = labelFont } } } 

とフォントviewDidLoadやセット後:

labelFont = UIFont(name: "Georgia-bold", size: 18) 
0

プロパティオブザーバ。

@IBOutlet weak var collectionNameLabels:[UILabel]! {

didSet{ 
    for nameLabel in collectionNameLabels{ 
    nameLabel.font = UIFont(name: "Georgia-bold", size: 18) 
    } 
} 

}