如何在 ios objective-c 中使用 NSAttributedString 在多行标签中添加背景线
How to add background line in multiline label using NSAttributedString in ios objective-c
我想在 objective-c 中使用 NSAttributedString 在多行标签中添加背景线,如下图所示
我使用了以下代码
[yourView.layer setBorderWidth:5.0];
[yourView.layer setBorderColor:[[UIColor colorWithPatternImage:[UIImage imageNamed:@"DotedImage.png"]] CGColor]];///just add image name and create image with dashed or doted drawing and add here
但它并不完美,我想实施适当的方法,我该如何实现。用这些也不合适Link1,Link2,Link3,Link4
我能够使用以下代码解决
NSAttributedString * title =
[[NSAttributedString alloc] initWithString:@"I implement My test in here"
attributes:@{NSStrikethroughStyleAttributeName:@(NSUnderlineStyleSingle)}];
[ self.viewOrderCell.labelItem setAttributedText:title];
以下代码可能有助于解决您的问题。
NSString* textValue = @"Pages you view in iOS Multiple lines of text in";
NSMutableAttributedString *strikeString = [[NSMutableAttributedString alloc] initWithString:textValue];
[strikeString addAttribute:NSStrikethroughStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:NSMakeRange(0, [strikeString length])];
[descriptionLbl setAttributedText:strikeString];
descriptionLbl.numberOfLines = 0;
你可能是说Strike,iOS 6.0及以上,UILabel
支持NSAttributedString
和NSMutableAttributedString
使用时NSAttributedString
NSAttributedString * title =
[[NSAttributedString alloc] initWithString:@"Your String here"
attributes:@{NSStrikethroughStyleAttributeName:@(NSUnderlineStyleSingle)}];
[label setAttributedText:title];
定义:
/**
* Returns an NSAttributedString object initialized with a given string and
attributes.
*
* @param str : The string for the new attributed string.
* @param attrs : The attributes for the new attributed string. For information
* about where to find the attribute keys you can include in this dictionary,
* see the overview section of this document.
*
* @return
Returns an NSAttributedString object initialized with the characters of aString and the attributes of attributes. The returned object might be different from the original receiver.
*/
- (instancetype)initWithString:(NSString *)str attributes:(NSDictionary *)attrs;
使用时 NSMutableAttributedString
NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:@"Your String here"];
[attributeString addAttribute:NSStrikethroughStyleAttributeName
value:@2
range:NSMakeRange(0, [attributeString length])];
定义:
/**
*
* @param name : A string specifying the attribute name. Attribute keys can be
* supplied by another framework or can be custom ones you define. For
* information about where to find the system-supplied attribute keys, see the
* overview section in NSAttributedString Class Reference.
*
* @param value : The attribute value associated with name.
*
* @param aRange : The range of characters
* to which the specified attribute/value pair applies.
*/
- (void)addAttribute:(NSString *)name value:(id)value range:(NSRange)aRange;
然后
yourLabel.attributedText = attributeString;
NSDictionary *attrDict = @{NSFontAttributeName : [UIFont systemFontOfSize:14.0],NSForegroundColorAttributeName : UIColorFromRGB(0X2846B3)};
NSMutableAttributedString *title =[[NSMutableAttributedString alloc] initWithString:hotleUrl attributes: attrDict];
[title addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:NSMakeRange(0,[title length])];
[urlBttn setAttributedTitle:title forState:UIControlStateNormal];
我想在 objective-c 中使用 NSAttributedString 在多行标签中添加背景线,如下图所示
我使用了以下代码
[yourView.layer setBorderWidth:5.0];
[yourView.layer setBorderColor:[[UIColor colorWithPatternImage:[UIImage imageNamed:@"DotedImage.png"]] CGColor]];///just add image name and create image with dashed or doted drawing and add here
但它并不完美,我想实施适当的方法,我该如何实现。用这些也不合适Link1,Link2,Link3,Link4
我能够使用以下代码解决
NSAttributedString * title =
[[NSAttributedString alloc] initWithString:@"I implement My test in here"
attributes:@{NSStrikethroughStyleAttributeName:@(NSUnderlineStyleSingle)}];
[ self.viewOrderCell.labelItem setAttributedText:title];
以下代码可能有助于解决您的问题。
NSString* textValue = @"Pages you view in iOS Multiple lines of text in";
NSMutableAttributedString *strikeString = [[NSMutableAttributedString alloc] initWithString:textValue];
[strikeString addAttribute:NSStrikethroughStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:NSMakeRange(0, [strikeString length])];
[descriptionLbl setAttributedText:strikeString];
descriptionLbl.numberOfLines = 0;
你可能是说Strike,iOS 6.0及以上,UILabel
支持NSAttributedString
和NSMutableAttributedString
使用时NSAttributedString
NSAttributedString * title =
[[NSAttributedString alloc] initWithString:@"Your String here"
attributes:@{NSStrikethroughStyleAttributeName:@(NSUnderlineStyleSingle)}];
[label setAttributedText:title];
定义:
/**
* Returns an NSAttributedString object initialized with a given string and
attributes.
*
* @param str : The string for the new attributed string.
* @param attrs : The attributes for the new attributed string. For information
* about where to find the attribute keys you can include in this dictionary,
* see the overview section of this document.
*
* @return
Returns an NSAttributedString object initialized with the characters of aString and the attributes of attributes. The returned object might be different from the original receiver.
*/
- (instancetype)initWithString:(NSString *)str attributes:(NSDictionary *)attrs;
使用时 NSMutableAttributedString
NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:@"Your String here"];
[attributeString addAttribute:NSStrikethroughStyleAttributeName
value:@2
range:NSMakeRange(0, [attributeString length])];
定义:
/**
*
* @param name : A string specifying the attribute name. Attribute keys can be
* supplied by another framework or can be custom ones you define. For
* information about where to find the system-supplied attribute keys, see the
* overview section in NSAttributedString Class Reference.
*
* @param value : The attribute value associated with name.
*
* @param aRange : The range of characters
* to which the specified attribute/value pair applies.
*/
- (void)addAttribute:(NSString *)name value:(id)value range:(NSRange)aRange;
然后
yourLabel.attributedText = attributeString;
NSDictionary *attrDict = @{NSFontAttributeName : [UIFont systemFontOfSize:14.0],NSForegroundColorAttributeName : UIColorFromRGB(0X2846B3)};
NSMutableAttributedString *title =[[NSMutableAttributedString alloc] initWithString:hotleUrl attributes: attrDict];
[title addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:NSMakeRange(0,[title length])];
[urlBttn setAttributedTitle:title forState:UIControlStateNormal];