В вашем текущем коде я абсолютно не знаю, что это должно делать:
let bulletPoint: String = "\u{2022}"
let attributedString = NSMutableAttributedString(string: bulletPoint)
formattedString.enumerateAttributes(in: NSRange(0..<attributedString.length), options: []) { (attributes, range, _) -> Void in
for (attribute, _) in attributes {
formattedString.removeAttribute(attribute, range: range)
}
}
Тот факт, что вы используете NSRange(0..<attributedString.length)
, должен вызвать сбой, если formattedString
короче чем attributedString
. Это пуля, поэтому у вас не должно быть проблемы, но все же.
Пуля •
или \u{2022}
создается после разбора, поэтому вам нужно проанализировать formattedString.string
, что вы могли бы сделать:
let regex = try! NSRegularExpression(pattern: "\\s\u{2022}\\s", options: [])
let matches = regex.matches(in: formattedString.string, options: [], range: NSMakeRange(0, formattedString.string.utf16.count))
matches.reversed().forEach { formattedString.replaceCharacters(in: $0.range, with: "")}
Я не понял, если вы хотите удалить только пули или остальную часть текста (другие пытались с помощью .replacingOccurrences(of: "Click to open image!", with: "")
просто убедиться, что вы действительно смогли достичь этой линии и удалить подстроки или нет.
Хорошо, у меня все работает, благодаря некоторой помощи в Reddit . Поэтому в конечном итоге вам нужно создать WebView, но не пытаться прикрепить его к чему-либо. Затем вы должны настроить его таким образом, чтобы он отображал содержимое; это был последний недостающий кусок. Вот код для этого:
// Get the screen width and height and put them in screenWidth and screenWidth
// and then do the following with them:
int widthSpec = View.MeasureSpec.makeMeasureSpec(screenWidth, View.MeasureSpec.EXACTLY);
int heightSpec = View.MeasureSpec.makeMeasureSpec(screenHeight, View.MeasureSpec.EXACTLY);
webView.measure(widthSpec, heightSpec);
webView.layout(0, 0, screenWidth, screenHeight);
Затем вы можете рисовать из WebView в Canvas SurfaceHolder, и все прекрасно.
Спасибо всем за помощь!
ОБНОВЛЕНИЕ 11 МАРТА 2019
Теперь все работает, поэтому я решил поделиться с вами Гистой код на случай, если он будет полезен другим людям:
https://gist.github.com/iangilman/71650d46384a2d4ae6387f2d4087cc37