2015-08-02 2 views
0

По какой-то причине изображение не отображается. Я потерял test.png и [email protected] как в Image.xcassets/Я также бросил его в рамках проекта. Ничего из этого не помогло. Будем очень благодарны любой помощи.NSAttributedString: изображение не отображается в UILabel

var testView: UILabel = UILabel(frame: CGRectMake(20, 20, self.view.frame.width-40, self.view.frame.height-40)) 
var a = "Testing..." 

    var attachment = NSTextAttachment() 
    //This is the image that I would like to add 
    // I have dropped test.png and [email protected] under Image.xcassets 

    attachment.image = UIImage(named: "test") 

    var attachmentString = NSAttributedString(attachment: attachment) 
    let attrsB = NSAttributedString(
     string: "2nd line..Testing testing", 
     attributes: NSDictionary(
      object: UIFont(name: "HelveticaNeue", size: 18.0)!, 
      forKey: NSFontAttributeName) as [NSObject : AnyObject]) 



    a.appendAttributedString(attrsB) 
    let attributedTextToDisplay = NSMutableAttributedString(attributedString: a) 

    attributedTextToDisplay.appendAttributedString(attachmentString) 

    testView.attributedText = attributedTextToDisplay 

    self.view.addSubview(testView) 
+0

* я уронил его в рамках проекта *: Не требуется, если уже в 'активов Catalog'. – SwiftArchitect

ответ

0

Чтобы отобразить более 1 строки, необходимо, чтобы ваша метка имела несколько строк.

var testView: UILabel = UILabel(frame: CGRectMake(20, 20, self.view.frame.width-40, self.view.frame.height-40)) 
testView.numberOfLines = 0; 

Советы:

  1. Использование Раскадровка & Interface Builder. WYSIWYG.
  2. Использование AutoLayout, он решает многие изменения размера для вас
  3. Использование утверждает, если вы не уверены в содержании переменной
  4. Шаг в отладчик и нажмите на иконку глаза, чтобы показать Quicklook
  5. Устранение всех этих переменных поможет вам выяснить причину и не беспокоиться о том, загружено ли ваше изображение. См. Пример ниже.

Для хороших мер я также явно набрал a в a:NSMutableAttributedString.

var a:NSMutableAttributedString 

enter image description here

+0

Спасибо за ваши предложения. Я просто потратил на это больше времени:), и проблема решена. – user4143342

+0

Отлично. Вы можете обнаружить, что при написании приложений iOS кодирование на самом деле является врагом: чем больше вы создадите пользовательский интерфейс GUI Interface Builder и все современные инструменты, тем меньше ошибок вы столкнетесь. +1? – SwiftArchitect

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