I have strong working solution.
in layoutSubviews:
_title.frame = CGRect(x: 0, y: 0, width: bounds.width, height: 0)
_title.sizeToFit()
_title.frame.size = _title.bounds.size
in text setter:
_title.text = newValue
setNeedsLayout()
UPD. of course with this UILabel settings:
_title.lineBreakMode = .ByWordWrapping
_title.numberOfLines = 0