molon / mllabel Goto Github PK
View Code? Open in Web Editor NEWUILabel replacement with TextKit. Support link and expression.
License: MIT License
UILabel replacement with TextKit. Support link and expression.
License: MIT License
你好,如果要把链接点击时的阴影背景(即 ActiveLinkBackground )设置成像系统Label的dataDetectorTypes 那样点击时的圆角样式应该从哪里修改,找了很久,没有找到突破点.
使用过程中经常在MLLabelTextStorage调用setAttributedString:的时候崩溃。
- (void)replaceCharactersInRange:(NSRange)range withString:(NSString *)str;
- (void)setAttributes:(NSDictionary *)attrs range:(NSRange)range
- (NSDictionary *)attributesAtIndex:(NSUInteger)location effectiveRange:(NSRangePointer)range
这几个方法里面都有崩溃过。
看代码里面MLLabelTextStorage其实是没有做什么工作的,如果在代码里把它给去掉,使用NSTextStorage应该是没有问题的吧?
MLLinkLabel .h里
typedef NS_OPTIONS(NSUInteger, MLDataDetectorTypes) {
MLDataDetectorTypeAttributedLink = 1 << 31,
};
报错内容:Enumerator value evaluates to -2147483648,which cannot be narrowed to type 'NSUInteger'(aka'unsigned int')
我设置MLLinkLabel的dataDetectorTypes属性为MLDataDetectorTypeNone,它还是会把label中的数字变成链接,找了半天没找到原因,最终我只能把phoneNumber的正则改了😂
您好,我们的帖子里面有话题特殊颜色展示在文本里面,这个MLlabel只能判断到第一个井号和文本,后一个井号不含,比如我的帖子内容是“#今天是个好日子#对今天不错”, 加特殊话题颜色之后只有“##今天是个好日子”这一部分变色,后面一个井号没有覆盖到
有emoji表情的时候,好像mllabel的高度会比没有emoji表情的时候高?有可能搞成同一高度的吗?
_textLabel = [[MLLinkLabel alloc]init];
_textLabel.numberOfLines = 5;
_textLabel.dataDetectorTypes = MLDataDetectorTypeURL;
_textLabel.delegate = self;
_textLabel.font = [UIFont systemFontOfSize:15];
_textLabel.textColor = [UIColor lightGrayColor];
[self.view addSubview:_textLabel];
NSString *text = @"这是纯文字的动态,你懂得!仅仅是纯文字而已,里吼吼吼怕怕八十三破破那送搜送工地狗儿色色婆后后后后面了吼吼吼肉肉肉三六三六零干一里定你了个给没三松后和黑马上就送后看日落是世界上零三六三六老婆婆婆婆送婆婆说哦婆婆肉肉肉肉肉吼吼吼搜送肉肉肉肉两天就是世界里公公婆婆红红红没人送婆婆说开通你公公婆婆通能偷偷偷偷偷能偷偷他咯吼吼吼你手头通你婆婆破解的测试通告诉我的动态了监控室外机构号了的测试的动态了咯了监控了咯咯咯嗯,^o^^ω^😂😜😜😘😏😜😜😏😜😏😏😜😏😜😏😜😏😜😏😜😏😜😏😜😏😜😏😜😏😁😁😏😁😁😉😜😁😉😁😉😁😁😉😉😁😁😉😉😁😉😁😉😉😁😁😉😜😉😜😉😜😉😜😉😉😜😉😜😉😜😉😜😜😝😘😘😜😘😜😣👊👍💀👍👊👀👀👀👊👊👀👊👀👊👀👊👀👊👀👊👀👊👀👊👀👊👿😷😣😜😏😜😜😏😜😏😜😏😏😜😏😜😏😜😜😏😜😏😜😏😜😏😜😏😜😜😏😏😜😜😏😜😏😜😏😜😏😜😘😜😘😜😘😜😏😜😜😘😁😘😁*^o^*😜😏😜😏😏😁😏💀👩👩💀😷😷😷😷😷😷😷😷😷😘😘😘😘😘😘🌹🌹🌹💔💔🌹💔🌹💔👀💀👀💀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀💀💀💀💀💀👀👀💀👀💀👀💀👀💀👀💀👀💀👀💀👀💀💄🐙💤🎄🎉🎄🎉🎄🎉🎉🎄🎄🎉🎄🎉🎉🎂🎂🎉💀👻😡😏😁😏😁😏😁😏😁😏😁😁😏😁😏😁😏😏😁😏😁😏😁😡😁😡😜😏😜😏😜😏😜😏😜😜😏😜😏😜😏😜😏😜😜😏😏😜😜😏😏😜😜😘🎁🚄🚲🚲🚄🎉💀👻🚄🚄🚄🚲🚄💄🚄🚲🚄🚲🚄🎉🎂🎉🎂🎉🎉💀👀💀🐙🐙🐙🐙🐙🐙🐙🐙🐙🐙🐙💄🐙💄🐙💄🐙💄🐙💄🐙💄🐙💄🐙💄🐙💄🐙💄🚄💤👀👀👊👀👊👻🐛🚲🚲🚲🚲🚲🚲🚲🚲🚲🚲🚲";
_textLabel.frame = CGRectMake(100, 200, 320-56-20, 0);
_textLabel.text = text;
[_textLabel sizeToFit];
float sizeHeight = [_textLabel preferredSizeWithMaxWidth:320-56-20].height;
NSLog(@"height:%f size:%f",_textLabel.frame.size.height,sizeHeight);
当限制行数的时候 最好一行文字 高度不对
如何清除掉已添加的链接属性。
当numberOfLines 和 lineSpacing都大于0时,只会显示numberOfLines-1行,请问怎么解决?
在字符串里面, 如果有一串臭长的纯数字, 那么 这串数字会另起一行显示...大神帮忙看下!
我在源代码里找了,没找到,求教😭
NSString *text = [NSString stringWithFormat:@"回复@%@:%@",commentModel.reply_nickname,commentModel.content];
NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:text];
UIColor *highLightColor = [UIColor blueColor];
[attString setAttributes:@{
NSForegroundColorAttributeName : highLightColor,NSLinkAttributeName :@(commentModel.reply_uid)
} range:[text rangeOfString:commentModel.reply_nickname]];
self.contentLabel.attributedText = attString; // contentLabel就是MLLinkLabel
[self.contentLabel setDidClickLinkBlock:^(MLLink *link, NSString *linkText, MLLinkLabel *label) {
NSString *tips = [NSString stringWithFormat:@"Click\nlinkType:%ld\nlinkText:%@\nlinkValue:%@",link.linkType,linkText,link.linkValue];
}];
安卓那边的应该是第三方的表情,他通过融云传过来,可以显示表情,但是其他页面上的label 显示的是表情字符,但是我复制的那个表情字符放到融云消息了,它又不能显示了,放到之前显示的地方它还是不能显示,遇到的现象就是只要是我自己打印出来的表情字符,他就不能匹配 ,有遇到这种情况吗?谢谢
你好,我想问一下表情显示的大小可以设置吗?想要设置小一点
The method setDidClickLinkBlock in MLLinkLabel is only called on a long press, this is normal?
Our emoji may be downloaded/updated from server, so we need to modify MLExpressionManager to support this, like
if (!image) {
image = [[SDImageCache sharedImageCache]
imageFromDiskCacheForKey:imageName];
}
can you provide elegant support for this?
BR.
MLLinkLabel.m 文件中识别url的正则表达式少了一种情况,没法识别如 im.qq.com这种url.
服务器返回的文本内容含有\n的情况,\n及之后的内容都丢失了😢
注:不光是支持Gif格式的图片,是支持动态效果
使用MLLabel图文混排,有很多表情的情况下会卡顿
如果Link里面有一串很长的数字, 这串数字会另起一行
我在swift中用NSLayoutConstraint添加约束,添加在UITableViewCell 上,但是不能适应大小,什么问题呢
首先感谢分享这套内容,很好用,目前提供了网址链接还不换行的选择,但是似乎没有看到@、#等其他特殊内容有这个选项,希望能共提供跟@Property (nonatomic, assign) BOOL allowLineBreakInsideLinks;一样不换行的选泽!
你好!请问能自行设置html字体显示的字体大小吗?我用您的demo试了下貌似不可以。不知道是不是我的用法不对?
之前匹配表情用到俩个bundle 文件包,现在用一个就可以了吗?
就用中文说好了😅,你这个demo如果用很大的字体,表情也会显得特别大,不如emoji随着字体大小的变化而变化的自然。我摸索了半天,始终找不到emoji的location和size与font的关系,好像完全没规律似的!所以想请教一下你有什么好的办法,能让第三方表情缩放到跟emoji一模一样,达到跟emoji完全一致的渲染效果。Well As far as I am concerned, it is impossible.
MLLabel 如何实现Html中显示自定义表情?
不知为何MLLinkLabel一直不调用这两个方法:
调完
我也不知道什么原因,写法和你的demo一模一样,但是就是不知道为什么,我用的pod导入你的代码
在[MLLabel attributesFromLabelProperties]
这个方法里面,NSParagraphStyleAttributeName
被覆盖掉了,所以如果自己设置了lineSpacing就无效了。
您好 我使用了MLLabel做的论坛类型的列表页面,用户发表的文章使用的MLLabel展示的,但是发现MLLabel没有复制的功能,还麻烦告知是不是还未预留copy文字的功能,谢谢
There are some wrong when display phone and weblink
Example: https://big-up.style/tokyobigup
only https://big-up.sty
highlight other black.
* Terminating app due to uncaught exception 'NSRangeException', reason: '* -[NSBigMutableString _getBlockStart:end:contentsEnd:forRange:stopAtLineSeparators:]: Range {0, 20} out of bounds; string length 6'
*** First throw call stack:
(0x183cb82d8 0x1954e40e4 0x183cb8218 0x184adab14 0x191a741fc 0x191a74990 0x191a7d930 0x191aa9e8c 0x191aaa1ac 0x191acf160 0x191acea28 0x184ada21c 0x191ad0c90 0x1007c8044 0x1007cd5c4 0x10014c6e4 0x1001d1a40 0x1001d2428 0x1001d22dc 0x1004044d8 0x1886f5760 0x18803de1c 0x188038884 0x188709f94 0x1887cf3d0 0x188837b10 0x188706b6c 0x188837294 0x1889f9a88 0x1889ed890 0x1887d9268 0x1886f5760 0x18803de1c 0x188038884 0x188038728 0x188037ebc 0x188037c3c 0x18808e1f4 0x184e69470 0x183c5adc4 0x183c6fa54 0x183c6f9b4 0x183c6d934 0x183b992d4 0x18d3af6fc 0x18875efac 0x100651eb0 0x195b62a08)
libc++abi.dylib: terminating with uncaught exception of type NSException
Printing description of attributedText:
然后在昵称上面的圆框点一下就能修改信息了(----------这里是打印内容)
在使用 MLLabel 的时候,设置最大显示行数numberOfLines,然后设置lineSpacing时,显示的真实行数要少于numberOfLines值,例如numberOfLines=6, lineSpacing=5,数据很长时,显示有问题
* Terminating app due to uncaught exception 'NSRangeException', reason: '* -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array'
这个该怎么解决呢?
这是一个Demo,msg中8888数字颜色显示有问题,作者能帮忙看下吗?谢啦!!☆⌒(*^-゜)v
MLLinkLabel *label = [[MLLinkLabel alloc] initWithFrame:CGRectMake(0, 100, 400, 20)];
[self.view addSubview:label];
NSString *msg = @"大家好哈哈哈哈哈哈哈8888888888888";
NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:msg attributes:@{NSForegroundColorAttributeName:[UIColor orangeColor]}];
label.attributedText = attr;
类似
+8613978432345
8613743237899
135-3458-9876
等电话号码不能匹配到,能否完善一下匹配电话的正则表达式
你好,MLLabel能对图片设置点击事件吗?
在Swift中使用MLLinkLabel的时候,设置linkTextAttributes的换行模式,会不显示链接的文本
let textLabel = MLLinkLabel()
textLabel.linkTextAttributes = [NSUnderlineStyleAttributeName: NSUnderlineStyle.styleSingle]
但是直接使用Int类型就可以,如下:
textLabel.linkTextAttributes = [NSUnderlineStyleAttributeName:1]
我添加了一个 NSTextAttachment ,然后使用 sizeThatFits 计算有误。 当这个 attachment 在最后折行的时候,总是少计算一行。 貌似它没有参与计算。 请问,使用 MLLinkLabel 该如何获取 attributeString 的高度呢?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.