Skip to content

Commit 6018f14

Browse files
committed
Tips 页面 - 消息链接提取出来之后还残留一些空格的Bug
1 parent e48d5aa commit 6018f14

2 files changed

Lines changed: 20 additions & 8 deletions

File tree

Coding_iOS/Models/CodingTip.m

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,6 @@ - (void)adjust{
4545
_target_type_ColorName = @"0x379FD3";
4646
}
4747
_target_type_imageName = [NSString stringWithFormat:@"tipIcon_%@", _target_type];
48-
49-
NSRange range = [_htmlMedia.contentDisplay rangeByTrimmingLeftCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
50-
if (range.location > 0) {
51-
for (HtmlMediaItem *item in _htmlMedia.mediaItems) {
52-
item.range = NSMakeRange(item.range.location - range.location, item.range.length);
53-
}
54-
[_htmlMedia.contentDisplay deleteCharactersInRange:NSMakeRange(0, range.location)];
55-
}
5648
_content = _htmlMedia.contentDisplay;
5749
}
5850

Coding_iOS/Models/HtmlMedia.m

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,25 @@ - (void)analyseHtmlElement:(TFHppleElement* )element withShowType:(MediaShowType
147147
- (void)removeItem:(HtmlMediaItem *)delItem{
148148
NSInteger index = [_mediaItems indexOfObject:delItem];
149149
if (index != NSNotFound) {
150+
//处理链接左侧字符串尾部的空格
151+
if (delItem.range.location > 0) {
152+
NSString *lStr = [_contentDisplay substringToIndex:delItem.range.location];
153+
NSRange lRange = [lStr rangeByTrimmingRightCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
154+
NSUInteger diffLength = lStr.length - lRange.length;
155+
if (diffLength > 0) {
156+
delItem.range = NSMakeRange(delItem.range.location - diffLength, delItem.range.length + diffLength);
157+
}
158+
}
159+
//处理链接右侧字符串头部的空格
160+
if (delItem.range.location + delItem.range.length < _contentDisplay.length) {
161+
NSString *rStr = [_contentDisplay substringFromIndex:delItem.range.location + delItem.range.length];
162+
NSRange rRange = [rStr rangeByTrimmingLeftCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
163+
NSUInteger diffLength = rStr.length - rRange.length;
164+
if (diffLength > 0) {
165+
delItem.range = NSMakeRange(delItem.range.location, delItem.range.length + diffLength);
166+
}
167+
}
168+
//更新 _contentDisplay 和 delItem 后面 items 的 range
150169
if (delItem.range.length > 0) {
151170
[_mediaItems enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(HtmlMediaItem * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
152171
if (idx > index) {
@@ -157,6 +176,7 @@ - (void)removeItem:(HtmlMediaItem *)delItem{
157176
}];
158177
[_contentDisplay replaceCharactersInRange:delItem.range withString:@""];
159178
}
179+
//删除 delItem
160180
[_mediaItems removeObject:delItem];
161181
}
162182
}

0 commit comments

Comments
 (0)