自作viewをStoryBoard上でカスタムクラスに設定して、viewController側でframe設定用のメソッドを呼び出しています。

出来れば子view側で自動でframeを取得してsubviewのframeを設定できるようにしたいです。

子view側でAutoLayout後のframeを検知して取得するような方法は存在するでしょうか?


コード - 自作view

import UIKit

final class SLSegmentedView: UIView {

    var segmentedControl: CommonSegmentedControl?
    var contentsDivieder: ContentsDivider?

    override init(frame: CGRect) {
        super.init(frame: frame)
        commonInit()
        setSubviewsFrame(frame)
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        commonInit()
    }

    private func commonInit(){
        segmentedControl = CommonSegmentedControl(sectionTitles: sectionTitles)
        segmentedControl!.addTarget(MasterViewController(),
                                    action: #selector(MasterViewController.segmentedControlChangedValue(_:)),
                                    forControlEvents: .ValueChanged)
        contentsDivieder = ContentsDivider()
        self.addSubview(segmentedControl!)
        self.addSubview(contentsDivieder!)

    }

    func reloadTitles(){
        segmentedControl?.sectionTitles = self.sectionTitles
        segmentedControl?.layoutIfNeeded()
    }

    func setSubviewsFrame(frame: CGRect){
        segmentedControl?.frame = frame
        contentsDivieder?.containerFrame = frame
    }

    var sectionTitles: [String]{
        let df = NSDateFormatter()
        let userDefaults = NSUserDefaults.standardUserDefaults()
        let saturday = userDefaults.valueForKey("Saturday") as! Bool

        var aSectionTitles: [String]
        if saturday == true{
            aSectionTitles = [NSLocalizedString("All", comment: ""),
                             df.shortWeekdaySymbols[1],
                             df.shortWeekdaySymbols[2],
                             df.shortWeekdaySymbols[3],
                             df.shortWeekdaySymbols[4],
                             df.shortWeekdaySymbols[5],
                             df.shortWeekdaySymbols[6]]
        }else{
            aSectionTitles = [NSLocalizedString("All", comment: ""),
                             df.shortWeekdaySymbols[1],
                             df.shortWeekdaySymbols[2],
                             df.shortWeekdaySymbols[3],
                             df.shortWeekdaySymbols[4],
                             df.shortWeekdaySymbols[5]]
        }
        return aSectionTitles
    }

}

コード - view controller

@IBOutlet weak var controlView: SLSegmentedView!

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    controlView.setSubviewsFrame(controlView.bounds)
}

上手くいきましたので当該コードを載せておきます

override func layoutSubviews() {
    super.layoutSubviews()
    segmentedControl?.frame = self.bounds
    contentsDivieder?.containerFrame = self.bounds
}