Popularity
1.1
Stable
Activity
0.0
Stable
15
3
8

Description

A UILabel subclass which responds to touch on specified patterns. It has the following features: 1. It can detect pattern specified by regular expression and apply style such as font, color etc. 2. It allows to replace default ellipse with tappable attributed string to mark truncation 3. Convenience methods are provided to detect hashtags, username handler and URLs

Code Quality Rank: L5
Programming language: Swift
License: MIT License
Tags: Highlighting     UI     Label    

SwiftResponsiveLabel alternatives and similar libraries

Based on the "Label" category.
Alternatively, view SwiftResponsiveLabel alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of SwiftResponsiveLabel or a related project?

Add another 'Label' Library

README

Version License Documentation

SwiftResponsiveLabel

A UILabel subclass which responds to touch on specified patterns. It has the following features:

  1. It can detect pattern specified by regular expression and apply style such as font, color etc.
  2. It allows to replace default ellipse with tappable attributed string to mark truncation
  3. Convenience methods are provided to detect hashtags, username handler and URLs

Installation

Add following lines in your pod file

pod 'SwiftResponsiveLabel', '2.3'

Usage

The following snippets explain the usage of public methods. These snippets assume an instance of ResponsiveLabel named "customLabel".

import SwiftResponsiveLabel

In interface builder, set the custom class of your UILabel to SwiftResponsiveLabel.

Username Handle Detection

let userHandleTapAction = PatternTapResponder{ (tappedString)-> (Void) in
let messageString = "You have tapped user handle:" + tappedString
self.messageLabel.text = messageString
}
let dict = [NSForegroundColorAttributeName: UIColor.greenColor(), 
NSBackgroundColorAttributeName: UIColor.blackColor()]
self.customLabel.enableUserHandleDetection([NSForegroundColorAttributeName:UIColor.grayColor(),
RLHighlightedAttributesDictionary: dict, RLTapResponderAttributeName:userHandleTapAction])

URL Detection

let URLTapAction = PatternTapResponder{(tappedString)-> (Void) in
let messageString = "You have tapped URL: " + tappedString
self.messageLabel.text = messageString
}
self.customLabel.enableURLDetection([NSForegroundColorAttributeName:UIColor.blueColor(), RLTapResponderAttributeName:URLTapAction])

HashTag Detection

let hashTagTapAction = PatternTapResponder { (tappedString)-> (Void) in
let messageString = "You have tapped hashTag:" + tappedString
self.messageLabel.text = messageString
}
let dict = [NSForegroundColorAttributeName: UIColor.redColor(), NSBackgroundColorAttributeName: UIColor.blackColor()]
customLabel.enableHashTagDetection([RLHighlightedAttributesDictionary : dict, NSForegroundColorAttributeName: UIColor.cyanColor(),
RLTapResponderAttributeName:hashTagTapAction])

Custom Truncation Token

Set attributed string as truncation token
let action = PatternTapResponder {(tappedString)-> (Void) in
print("You have tapped token string")
}
let dict = [RLHighlightedBackgroundColorAttributeName:UIColor.blackColor(),
RLHighlightedForegroundColorAttributeName:UIColor.greenColor(), RLTapResponderAttributeName:action]
let token = NSAttributedString(string: "...More", attributes: [NSFontAttributeName: customLabel.font, 
NSForegroundColorAttributeName:UIColor.brownColor(), RLHighlightedAttributesDictionary: dict])
customLabel.attributedTruncationToken = token
Set image as truncation token

The height of image size should be approximately equal to or less than the font height. Otherwise the image will not be rendered properly

let action = PatternTapResponder {(tappedString)-> (Void) in
print("You have tapped token image")
}
self.customLabel.setTruncationIndicatorImage(UIImage(named: "check")!, withSize: CGSize(width: 20.0, height: 20.0), andAction: action)
Set from interface builder

Screenshots

References

The underlying implementation of SwiftResponsiveLabel is based on KILabel(https://github.com/Krelborn/KILabel). SwiftResponsiveLabel is made flexible to enable detection of any pattern specified by regular expression.

The following articles were helpful in enhancing the functionalities.


*Note that all licence references and agreements mentioned in the SwiftResponsiveLabel README section above are relevant to that project's source code only.