2017-11-28 13 views
1

カスタムUIViewオブジェクトであるDayViewsのコンセントコレクションがあります。私の 'ClientTaskVC' DayViewを参照でき、そのUIElementsを取得して取得できるようにするため、各DayViewにはdayLabel、dateLabel、checkmarkImgがあります。私はアウトレットのコレクションにすべてのラベル/画像ビューを置くことは、トラッキングが難しく、間違っているのでスマートなアイデアだとは分かりません。私の最初のイメージでは、これがどのようにコード内でどのように見えるか、すべてのビューを参照としてView Controllerを表示する方法を詳しく説明しました。Swift 4 - アウトレットコレクションのカスタムUIViewからUI要素を取得するにはどうすればいいですか?

まず画像:私はやってみました何outletcollections

は、すべてのラベルやイメージのため実際のDayViewのカスタムクラスにアウトレットを追加しましたが、私はコンセントに接続したときにそれが唯一のDayViewに接続することができましたし、再利用可能ではなかったです画面上の各DayViewオブジェクトごとに、適切なアプローチはカスタムDayViewクラスのアウトレットコレクションを作成してそれぞれのビューラベルを参照することではないと私は思っていますが、今この問題にどのように近づくべきかわからない

第2画像:outletsDayViewClass

は、理想的には私が望むものを単に 'ClientTaskVC' で私の出口のコレクションを持つことです。

@IBOutlet var dayViews: [DayView]! 

とそののUIElementを呼び出します。そうのような(EX dayViews [i]を.dayLbl.text):

for i in 0 ..< dayViews.count { 
     let date = Date().addingTimeInterval(TimeInterval(86400 * i)) 
     let dateFormatter = DateFormatter() 
     dateFormatter.dateFormat = "dd" 

     // See how the dayViews label, 'dayLbl' is being referenced 
     dayViews[i].dayLbl.text = dateFormatter.string(from: date) 
     dayViews[i].dayLbl.textAlignment = .center 
    } 

アウトレットのコレクションでこれを行う方法に関するお手伝いがあれば幸いです。ありがとうございました。

+0

可能な重複XCode9](https://stackoverflow.com/questions/46384857/cant-link-to-outlet-collection-in-xcode9) –

+0

私にUICollectionViewのケースのように見えます。 –

+0

@AuRis UICollectionViewを使用しなかった理由は、これまでに7つのビューしか存在しないことがあります。私はそれが最も最適なアプローチだと言われました。 – Jumpman987

答えて

1

アウトレットとして全体のビューを接続します

@IBOutlet weak var dayView: UIView! 

あなたは可能性がありそうのようなDayView年代のサブビューのすべてをループ:[でコレクションをコンセントにリンクすることはできませんの

var dayViewSubviews: UIView = [] 

for subView in dayView { 
    dayViewSubviews.append(subView) 
} 
関連する問題