Coder Social home page Coder Social logo

mllabel's Introduction

MLLabel

UILabel with TextKit. support for Link and custom Expression. (iOS 7+)

Apps Using Downloads

My library does not seek any reward, but if you use this library, star it if you like. :)

MLLabel MLLabel

mllabel's People

Contributors

molon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mllabel's Issues

html字体

你好!请问能自行设置html字体显示的字体大小吗?我用您的demo试了下貌似不可以。不知道是不是我的用法不对?

We need to load emoji image other than from bundle

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.

didClick代理方法不调用问题。但是didLongPress有调用

不知为何MLLinkLabel一直不调用这两个方法:

  • (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
  • (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

调完

  • (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    之后就直接调
  • (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event

我也不知道什么原因,写法和你的demo一模一样,但是就是不知道为什么,我用的pod导入你的代码

Create link for phone and web wrong

There are some wrong when display phone and weblink
Example: https://big-up.style/tokyobigup only https://big-up.sty highlight other black.

有时会导致越界这个问题,放在cell上的

* 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:
然后在昵称上面的圆框点一下就能修改信息了(----------这里是打印内容)

我在xib里面拖了一个UIlabel,然后修改类别为MLLinkLabel,对他添加了link属性,但是运行以后点击没有调用代理方法,后来我试了一下setDidClickLinkBlock,也没有调用,可能是什么原因呢?这是我的代码

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];

    }];

在Swift中使用MLLinkLabel问题

在Swift中使用MLLinkLabel的时候,设置linkTextAttributes的换行模式,会不显示链接的文本
let textLabel = MLLinkLabel()
textLabel.linkTextAttributes = [NSUnderlineStyleAttributeName: NSUnderlineStyle.styleSingle]

但是直接使用Int类型就可以,如下:
textLabel.linkTextAttributes = [NSUnderlineStyleAttributeName:1]

添加约束不能适应大小

我在swift中用NSLayoutConstraint添加约束,添加在UITableViewCell 上,但是不能适应大小,什么问题呢

下面代码,直接crash了,怎么修复?

  • (MLLinkLabel *)contentLabel {
    if (!_contentLabel) {
    _contentLabel = [[MLLinkLabel alloc] init];
    _contentLabel.textAlignment = NSTextAlignmentCenter;
    _contentLabel.font = [UIFont systemFontOfSize:kContentFontSize];
    _contentLabel.numberOfLines = 0;
    _contentLabel.textColor = [UIColor blackColor];
    NSString *html = @"您好";
    _contentLabel.attributedText = [NSAttributedString attributedStringWithHTML:html]; //crash了
    }
    return _contentLabel;
    }

* Terminating app due to uncaught exception 'NSRangeException', reason: '* -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array'

这个该怎么解决呢?

你好 提交一个bug

_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);

当限制行数的时候 最好一行文字 高度不对

间距不对

Molon:
谢谢你的库,之前我用的是MLEmojiLabel,后来看到这里有最新的MLLabel,扩展性更强,可实现更多的功能,于是换成了新的MLLabel。换了之后一切正常,只有一个问题,我项目里的间距感觉要比Demo里的间距要大很多。如果是纯文字,间距会小一点,如果文字里带有表情,间距就会大一些。
Demo里的效果:

2015-09-06 2 52 24

项目里做出来的效果:

2015-09-06 2 53 48

文字的行间距变高了,请问如何破,我的代码与你都没有看到有不一样的地方。都是用Xib。请指教啊!

在MLLabelTextStorage里崩溃

使用过程中经常在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应该是没有问题的吧?

数字会自动另起一行

在字符串里面, 如果有一串臭长的纯数字, 那么 这串数字会另起一行显示...大神帮忙看下!

emoji表情高度稍高

有emoji表情的时候,好像mllabel的高度会比没有emoji表情的时候高?有可能搞成同一高度的吗?

How to make custom expression's size equal the emoji.

就用中文说好了😅,你这个demo如果用很大的字体,表情也会显得特别大,不如emoji随着字体大小的变化而变化的自然。我摸索了半天,始终找不到emoji的location和size与font的关系,好像完全没规律似的!所以想请教一下你有什么好的办法,能让第三方表情缩放到跟emoji一模一样,达到跟emoji完全一致的渲染效果。Well As far as I am concerned, it is impossible.

cell里面MLLable的重用机制。

如何清除掉已添加的链接属性。

  • (MLLink_)addLinkWithType:(MLLinkType)type value:(NSString_)value range:(NSRange)range;
  • (BOOL)addLink:(MLLink*)link;

copy文本的功能

您好 我使用了MLLabel做的论坛类型的列表页面,用户发表的文章使用的MLLabel展示的,但是发现MLLabel没有复制的功能,还麻烦告知是不是还未预留copy文字的功能,谢谢

设置dataDetectorTypes无效

我设置MLLinkLabel的dataDetectorTypes属性为MLDataDetectorTypeNone,它还是会把label中的数字变成链接,找了半天没找到原因,最终我只能把phoneNumber的正则改了😂

话题俩井号,第二个井号不识别

您好,我们的帖子里面有话题特殊颜色展示在文本里面,这个MLlabel只能判断到第一个井号和文本,后一个井号不含,比如我的帖子内容是“#今天是个好日子#对今天不错”, 加特殊话题颜色之后只有“##今天是个好日子”这一部分变色,后面一个井号没有覆盖到

有个关于表情的问题请教一下你

安卓那边的应该是第三方的表情,他通过融云传过来,可以显示表情,但是其他页面上的label 显示的是表情字符,但是我复制的那个表情字符放到融云消息了,它又不能显示了,放到之前显示的地方它还是不能显示,遇到的现象就是只要是我自己打印出来的表情字符,他就不能匹配 ,有遇到这种情况吗?谢谢

html和普通文本共存时\n和\r失效

html=@"如您需临时调高信用额度,请直接回复“调额”。\r\n如您有现金需求,<a href=\"https://www.baidu.com\" >点击这里</a>,立即借款!\r\n如您需大额消费分期额度,<a href=\"https://www.baidu.com\" >点击这里</a>,立即申请!<br>测试</br>";
simulator screen shot 2016 8 25 11 58 16
img_4322

设置链接点击时的阴影背景为圆角

你好,如果要把链接点击时的阴影背景(即 ActiveLinkBackground )设置成像系统Label的dataDetectorTypes 那样点击时的圆角样式应该从哪里修改,找了很久,没有找到突破点.

关于@、#等特殊内容的换行问题!

首先感谢分享这套内容,很好用,目前提供了网址链接还不换行的选择,但是似乎没有看到@、#等其他特殊内容有这个选项,希望能共提供跟@Property (nonatomic, assign) BOOL allowLineBreakInsideLinks;一样不换行的选泽!

没法识别部分url

MLLinkLabel.m 文件中识别url的正则表达式少了一种情况,没法识别如 im.qq.com这种url.

获取高度

我添加了一个 NSTextAttachment ,然后使用 sizeThatFits 计算有误。 当这个 attachment 在最后折行的时候,总是少计算一行。 貌似它没有参与计算。 请问,使用 MLLinkLabel 该如何获取 attributeString 的高度呢?

MLLinkLabel中设置文字颜色,遇到数字颜色显示错误

这是一个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;

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.