iPhone: UITextView обертывает UIImage?

Как заставить UITextView оборачивать текст вокруг UIImage, как на этом изображении? альтернативный текст

Размер изображения не обязательно заранее известен.


person Mike C    schedule 07.12.2010    source источник


Ответы (3)


iOS 7 и выше:

UIBezierPath * imgRect = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, 100, 100)];
self.textView.textContainer.exclusionPaths = @[imgRect];

Свифт (кредит Барта ван Куика):

let exclusionPath = UIBezierPath(rect: CGRectMake(0, 0, 100, 100))
self.textView.textContainer.exclusionPaths = [exclusionPath]
person Gil Margolin    schedule 06.03.2014
comment
Это ВЕЛИКОЛЕПНОЕ решение, гораздо более простое, чем использование HTML. При этом HTML — очень быстрое решение. Итак, теперь, когда есть способ сделать это, пользователю просто нужно выбрать свой яд. - person Oxcug; 12.08.2014

Ответ Гила в Swift:

let exclusionPath = UIBezierPath(rect: CGRectMake(0, 0, 100, 100))
self.textView.textContainer.exclusionPaths = [exclusionPath]
person Bart van Kuik    schedule 31.03.2015

Если у кого-то есть лучшее решение, пожалуйста, принесите его, но обычно мне приходилось возвращаться к html, чтобы проделать такой трюк.

Вы можете использовать два textView и один imageView для достижения этого программно, но я буду писать пару LOC. Вам нужно будет выяснить размер изображения, настроить первое табличное представление так, чтобы оно хорошо подходило рядом, а затем выяснить, где строка длиннее видимой, отрезать ее и перейти к следующему текстовому представлению.

То же самое может быть достигнуто с помощью простого локального UIWebView.

person Blitz    schedule 07.12.2010
comment
Хм, хорошо. Я надеялся, что есть простой способ добиться этого без HTML, но, возможно, его нет. Спасибо. - person Mike C; 07.12.2010
comment
может и есть, я не на 100% уверен, что нет, но я не нашел. - person Blitz; 08.12.2010