2015-12-18 2 views
0

У меня есть переменная имени пользователя и строка сообщения, такая как «понравилась ваша запись», и чтобы иметь возможность отображать ее как одну строку, я объединил их в NSMutableAttributedString. Как это будет легко, яГиперссылка + кнопка, подобная кнопке на NSAttributedString

let username = notification["username"].string 
let notificationBody = notification["body"].string 

let notificationString = NSMutableAttributedString(string: "\(username!) \(notificationBody!)") 
notificationString.addAttributes([NSForegroundColorAttributeName: UIColor.blackColor()], range: NSMakeRange(0, (username?.characters.count)!)) 
cell.notificationLabel.attributedText = notificationString 

Окрашивание текст работает так, как и следовало ожидать, однако, я хочу, чтобы иметь возможность нажать на имя пользователя и в то же время достижения цветовой эффект щелчка (например, нажмите кнопку). Вот что я имею в виду:

Без мыши: enter image description here

по щелчку: enter image description here и непосредственно перейти к другому VC.

Я на самом деле достиг того, чего хочу достичь с помощью примитивного взлома, который мне абсолютно не нравится. Я сделал это, сначала добавил дополнительную кнопку над именем пользователя и установил фоновый цвет: чистый цвет. И визуально кажется приятным, если ширина имени пользователя по совпадению совпадает с шириной кнопки в ячейке Storyboard. В противном случае это кажется ошибкой.

Extra Button слой над «имя пользователя» текста: enter image description here


Каков практический способ достижения того, что я хочу достичь? Должен ли я просто изменить ширину прозрачной кнопки для каждой ячейки, в соответствии с количеством символов имени пользователя? Так что если для 4-6 слов, ширина x; если 8-10 слов, у ширина?

Есть ли лучшие способы, чем это?

ответ

1

Я бы сменил макет на кнопку, содержащую имя пользователя и метку, содержащую тело, а не только одну метку. Таким образом, кнопка всегда будет иметь тот же размер, что и имя пользователя.

+0

И добавить ограничение между именем пользователя и меткой? Есть ли способ добавить эту кнопку/щелчок в функцию NSAttributedText? – senty

+0

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

+0

Нет, я нет. Я просто перетащил его на имя пользователя – senty

Смежные вопросы