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
SwiftResponsiveLabel alternatives and similar libraries
Based on the "Label" category.
Alternatively, view SwiftResponsiveLabel alternatives based on common mentions on social networks and blogs.
-
TTTAttributedLabel
A drop-in replacement for UILabel that supports attributes, data detectors, links, and more -
ActiveLabel.swift
UILabel drop-in replacement supporting Hashtags (#), Mentions (@) and URLs (http://) written in Swift -
MZTimerLabel
A handy class for iOS to use UILabel as a countdown timer or stopwatch just like in Apple Clock App. -
NumberMorphView
A label view for displaying numbers which can transition or animate using a technique called number tweening or number morphing. -
THLabel
UILabel subclass, which additionally allows shadow blur, inner shadow, stroke text and fill gradient. -
AnimatedMaskLabel
Animated Mask Label is a nice gradient animated label. This is an easy way to add a shimmering effect to any view in your app. It is useful as an unobtrusive loading indicator.
CodeRabbit: AI Code Reviews for Developers

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of SwiftResponsiveLabel or a related project?
README
SwiftResponsiveLabel
A UILabel subclass which responds to touch on specified patterns. It has the following features:
- It can detect pattern specified by regular expression and apply style such as font, color etc.
- It allows to replace default ellipse with tappable attributed string to mark truncation
- 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.