由于某种原因,图像无法显示。我已经将test.png和test@2x.png都放在Image.xcassets下/我还将其放在项目中。这些都没有帮助。如有任何帮助,将不胜感激。
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 test@2x.png 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)
2条答案
按热度按时间vddsk6oq1#
如果要显示多行,则需要允许标签具有多行。
小贴士:
1.使用情节提要和界面生成器。所见即所得。
1.使用自动版式,它可以为您解决许多调整大小的问题
1.如果您不确定变量的内容,请使用 asserts
1.进入调试器并按下眼睛图标以显示 quicklook
1.消除所有这些变量将帮助您找出根本原因,而不必担心,比方说,是否加载了您的图像。
为了更好地度量,我还显式地将
a
键入a:NSMutableAttributedString
。rhfm7lfc2#
当我在
IBOutlet
上使用didSet {}
时遇到了这个问题,将代码移动到ViewDidLoad()
方法解决了这个问题。