Я разрабатываю lib для уценки с быстрым и работает отлично! Но есть небольшая проблема, когда я загружаю изображения в уценке я ставлю заполнитель изображение и отправку другого способа, чтобы загрузить исходное изображение, как это:Отображение изображения с url с помощью заполнителя в UITextView с атрибутной строкой
var attachment: NSTextAttachment = NSTextAttachment()
attachment.image = UIImage(named: "placeholder.png")
attachment.bounds = CGRect(origin: CGPointZero, size: attachment.image.size.width > UIScreen.mainScreen().bounds.width ? CGSizeMake(UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.width/attachment.image.size.width * attachment.image.size.height) : attachment.image.size)
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {() -> Void in
let imageData: NSData = NSData(contentsOfURL: url)
attachment.image = UIImage(data: imageData)
attachment.bounds = CGRect(origin: CGPointZero, size: attachment.image.size.width > UIScreen.mainScreen().bounds.width ? CGSizeMake(UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.width/attachment.image.size.width * attachment.image.size.height) : attachment.image.size)
self.textView.setNeedsDisplay()
})
let attributedString: NSAttributedString = NSAttributedString(attachment: attachment)
let lineBreak: NSAttributedString = NSAttributedString(string: "\n")
self.markdown.deleteCharactersInRange(matchRange)
self.markdown.insertAttributedString(attributedString, atIndex: matchRange.location)
self.markdown.insertAttributedString(lineBreak, atIndex: matchRange.location)
, но после загрузки держателя изображения места не исчезает, пока пользователь начните прокрутку, неожиданно верните изображение!
Так что мне интересно узнать, в чем проблема?
Это не работа! точно так же, как и раньше, когда я начинаю прокручивать замену заполнителя на исходное изображение! есть ли у вас другая идея? – Aryan
Как насчет вызова NSTextStorage -edited: range: changeInLength: метод для объекта self.textView textStorage? –
Я не мог использовать диапазон, потому что другие потоки работают над текстом разметки и находят ссылку на изображение, удаляют их и вставляют изображения на место, поэтому это приведет к неправильному смещению другого диапазона! – Aryan