line break mode

This commit is contained in:
Hailey
2024-01-18 21:57:56 -08:00
parent adfcf05fe4
commit 384c8ec3a8
4 changed files with 21 additions and 4 deletions
@@ -11,6 +11,11 @@ class RNUITextView: UIView {
textView.isSelectable = selectable
}
}
@objc var ellipsizeMode: String = "tail" {
didSet {
textView.textContainer.lineBreakMode = self.getLineBreakMode()
}
}
@objc var onTextLayout: RCTDirectEventBlock?
override init(frame: CGRect) {
@@ -118,4 +123,19 @@ class RNUITextView: UIView {
return nil
}
func getLineBreakMode() -> NSLineBreakMode {
switch self.ellipsizeMode {
case "head":
return .byTruncatingHead
case "middle":
return .byTruncatingMiddle
case "tail":
return .byTruncatingTail
case "clip":
return .byClipping
default:
return .byTruncatingTail
}
}
}
@@ -2,10 +2,10 @@
@interface RCT_EXTERN_MODULE(RNUITextViewManager, RCTViewManager)
RCT_REMAP_SHADOW_PROPERTY(numberOfLines, numberOfLines, NSInteger)
RCT_REMAP_SHADOW_PROPERTY(ellipsizeMode, ellipsizeMode, NSString)
RCT_REMAP_SHADOW_PROPERTY(allowsFontScaling, allowsFontScaling, BOOL)
RCT_EXPORT_VIEW_PROPERTY(onTextLayout, RCTDirectEventBlock)
RCT_EXPORT_VIEW_PROPERTY(ellipsizeMode, NSString)
RCT_EXPORT_VIEW_PROPERTY(selectable, BOOL)
@end
@@ -1,7 +1,5 @@
@objc(RNUITextViewManager)
class RNUITextViewManager: RCTViewManager {
var textStorage = NSTextStorage()
override func view() -> (RNUITextView) {
return RNUITextView()
}
@@ -1,7 +1,6 @@
class RNUITextViewShadow: RCTShadowView {
// Props
@objc var numberOfLines: Int = 0
@objc var ellipsizeMode: Int = 0
@objc var allowsFontScaling: Bool = true
var attributedText: NSAttributedString = NSAttributedString()