2015-12-09 3 views
2

Есть ли способ добавить простую строку через UILabel. У меня есть 40-кратный высокий UILabel и просто хочу рисовать черную линию горизонтально через середину (20 пикселей). Есть ли способ сделать это без необходимости создания изображения и установки его в качестве фона?Рисунок простой строки в UILabel

+0

Да, вы можете рисовать линии, сохраняя высоту меньше или иначе вы можете сделать изображение и вы можете использовать. –

+0

На вашем ярлыке будет текст –

+1

, если надпись состоит из текста, тогда вы можете использовать прокрутку с атрибутной строкой. –

ответ

3

Да, есть несколько способов. Например, вы можете добавить 1-точку высоты подвида на этикетку:

let lineView = UIView(
     frame: CGRect(x: 0, 
      y: label.bounds.size.height/2, 
      width: label.bounds.size.width, 
      height: 1 
     ) 
    ) 
    lineView.backgroundColor = UIColor.blackColor(); 
    label.addSubview(lineView) 
2

Вы должны иметь подкласс UILabel и перезаписать метод drawRect.

2

Вы можете сделать это с помощью UILabel

высота = 1 ширина = как вам нужно

и сделать его цвет фона, как черный и положить его на 40px UILabel. Надеюсь, это поможет тебе.

3

если ваша метка состоит текст, то вы можете использовать зачеркивать в этикетке, как это.

Objective-C

NSString *newStringStrike = @"your text"; 
NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:newStringStrike]; 
[attributeString addAttribute:NSStrikethroughStyleAttributeName 
         value:@1 
         range:NSMakeRange(0, [attributeString length])]; 

labelName.attributedText = attributeString; 
1

@Anil solanki's answer с помощью Swift 3.1:

let newStringStrike = "your text" 
let attributeString = NSMutableAttributedString(string: newStringStrike) 
attributedString.addAttribute(NSStrikethroughStyleAttributeName, value: 1, range: NSMakeRange(0, attributedString.length)) 

labelName.attributedText = attributedString 
Смежные вопросы