Getting a multi-line text UIButton is easy in iOS. Having the tail truncation (see ellipsis) with the multi-line is tricky.

The UIButton resets the frame of the titleLabel when changing the lineBreakMode mode. When set to UILineBreakModeTailTruncation it assumes a single line of text, even if numberOfLines is set greater than 1 on the label. With UILineBreakModeWordWrap, it will have multiple lines, however no truncation ellipsis. This leaves awkwardly worded buttons.

Multi-line Tail
Truncat...

To get tail truncation with word wrap, set your numberOfLines to greater than 1, lineBreakMode to UILineBreakModeTailTruncation and then override the layoutSubviews method.