From 0ad12965978dacc189e0f41e5d93901d8aec3dc6 Mon Sep 17 00:00:00 2001 From: zhenglibao <zhenglibao@kanzhun.com> Date: Tue, 2 Jun 2020 14:03:59 +0800 Subject: [PATCH] =?UTF-8?q?UILabel=E5=A2=9E=E5=8A=A0=E7=82=B9=E5=87=BB?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FlexLib/Classes/ViewExt/UILabel+Flex.h | 5 +++++ FlexLib/Classes/ViewExt/UILabel+Flex.m | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/FlexLib/Classes/ViewExt/UILabel+Flex.h b/FlexLib/Classes/ViewExt/UILabel+Flex.h index 431a33c..a6ff463 100644 --- a/FlexLib/Classes/ViewExt/UILabel+Flex.h +++ b/FlexLib/Classes/ViewExt/UILabel+Flex.h @@ -32,5 +32,10 @@ -(void)updateAttributeText; +/** + * 返回点对应的字符索引,pt为UILabel自身坐标系的点 + */ +-(NSUInteger)charIndexAtPoint:(CGPoint)pt; + @end diff --git a/FlexLib/Classes/ViewExt/UILabel+Flex.m b/FlexLib/Classes/ViewExt/UILabel+Flex.m index f28b894..47fc214 100644 --- a/FlexLib/Classes/ViewExt/UILabel+Flex.m +++ b/FlexLib/Classes/ViewExt/UILabel+Flex.m @@ -73,6 +73,12 @@ - (NSUInteger)charIndexOfTap:(UITapGestureRecognizer *)recognizer { CGPoint location = [recognizer locationInView:self]; + return [self charIndexAtPoint:location]; +} + +-(NSUInteger)charIndexAtPoint:(CGPoint)location +{ + NSTextStorage *textStorage = [[NSTextStorage alloc] initWithAttributedString:self.attributedText]; NSLayoutManager *layoutManager = [[NSLayoutManager alloc] init]; [textStorage addLayoutManager:layoutManager];