Я знаю, что этот вопрос не помечен для swift, но на тот случай, если кто-то ищет версию Swift 3.0, вот она.
/* Called by the picker view when it needs the view to use for a given row in
a given component. If the previously used view (the view parameter) is adequate,
return that. If you return a different view, the previously used view is
released. The picker view centers the returned view in the rectangle for row.
*/
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
var label = UILabel(frame: CGRect(x: CGFloat(0), y: CGFloat(0), width: CGFloat(300), height: CGFloat(37)))
let booking = self.bookingInfo[row] //bookingInfo is an array of elements
label.text = String(booking.BookingNumber) + String(booking.DateAndTime)
label.textAlignment = .left
return label
}