Skip to content

feixue299/FXExpandableLabel

Repository files navigation

FXExpandableLabel

Requirements

  • iOS 9.0+

Installtion

Cocoapods

For FXExpandableLabel, use the following entry in your Podfile:

pod 'FXExpandableLabel', '~>0.1'

Carthage

Make the following entry in your Cartfile:

github "feixue299/FXExpandableLabel" ~> 0.1

Create a Package.swift file.

let package = Package(
    dependencies: [
        .package(url: "https://github.com/feixue299/FXExpandableLabel.git", from: "0.1.0")
    ],
    // ...
)

Usage

Using FXExpandableLabel is very simple. In your storyboard, set the custom class of your UILabel to FXExpandableLabel and set the desired number of lines (for the collapsed state):

expandableLabel.numberOfLines = 3

Apart from that, one can modify the following settings:

delegate

Set a delegate to get notified in case the link has been touched.

collapsed

Set true if the label should be collapsed or false for expanded.

expandableLabel.collapsed = true
collapsedAttributedLink

Set the link name (and attributes) that is shown when collapsed.

expandableLabel.collapsedAttributedLink = NSAttributedString(string: "Read More")
expandedAttributedLink

Set the link name (and attributes) that is shown when expanded. It is optional and can be nil.

expandableLabel.expandedAttributedLink = NSAttributedString(string: "Read Less")
setLessLinkWith(lessLink: String, attributes: [String: AnyObject], position: NSTextAlignment?)

Setter for expandedAttributedLink with caption, String attributes and optional horizontal alignment as NSTextAlignment. If the parameter position is nil, the collapse link will be inserted at the end of the text.

expandableLabel.setLessLinkWith(lessLink: "Close", attributes: [NSForegroundColorAttributeName:UIColor.red], position: nil)

ellipsis

Set the ellipsis that appears just after the text and before the link.

expandableLabel.ellipsis = NSAttributedString(string: "...")