Size: a a a

iOS Developers — русскоговорящее сообщество

2020 June 19

SL

Sergey Lavinov in iOS Developers — русскоговорящее сообщество
Полагаю здесь, это в хедере того класса, из которого я хочу стрельнуть функцию
#import <Flutter/Flutter.h>
источник

SL

Sergey Lavinov in iOS Developers — русскоговорящее сообщество
Артур
сделай из него статик метод в классе типа +(UIImage*)....
Спасибо! Сделал статик метод, в котором запроксил вызов этой сишной функции и всё встало на место
источник

А

Алешка in iOS Developers — русскоговорящее сообщество
Всем привет. Почему TextView не обтекает блок “На рассмотрении”
источник

А

Алешка in iOS Developers — русскоговорящее сообщество
делаю так
источник

А

Алешка in iOS Developers — русскоговорящее сообщество
textView.textContainer.exclusionPaths = [UIBezierPath(rect: stackView.frame)]
источник

А

Алешка in iOS Developers — русскоговорящее сообщество
в storyboard сделал так
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
Алешка
textView.textContainer.exclusionPaths = [UIBezierPath(rect: stackView.frame)]
в какой момент вызывается этот код?
источник

А

Алешка in iOS Developers — русскоговорящее сообщество
в классе UITableViewCell в методе awakeFromNib
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
в этот момент значение фрейма будет как в сториборде у тебя, судя по скриншоту это условно там 400 по вертикали
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
вот когда текст дойдет до этих 400, они и будет то место обтекать
источник

А

Алешка in iOS Developers — русскоговорящее сообщество
мысль понял, буду пробовать. Спасибо)
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
перенеси это в ячейке в layoutSubviews после вызова super
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
ну и по-хорошему фрейм надо конвертить типа let frame = textView.convert(stackView.bounds, from: stackView)
источник

А

Алешка in iOS Developers — русскоговорящее сообщество
Огромное спасибо)
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
я не уверен, возможно если у тебя лэйаут текста вызывает перерасчет высоты ячейки и как следствие снова эту строку, а она в свою очередь вновь изменит лэйаут текста, то получится замкнутый круг
источник

А

Артур in iOS Developers — русскоговорящее сообщество
просто оберни это в lazy var что бы гарантировать исполнение только 1 раз
override func layoutSubviews() {
       super.layoutSubviews()
       _ = DispatchOnce
   }
   
   private lazy var DispatchOnce: Void = {
       textView.textContainer.exclusionPaths = [UIBezierPath(rect: stackView.frame)]
   }()
источник

А

Алешка in iOS Developers — русскоговорящее сообщество
Denis Kim
я не уверен, возможно если у тебя лэйаут текста вызывает перерасчет высоты ячейки и как следствие снова эту строку, а она в свою очередь вновь изменит лэйаут текста, то получится замкнутый круг
не, такова нету. Ошибка в том (после Вашей помощи), что высота textView очень большая на момент первого показа. А после того, как layoutSubviews вызовится еще раз, то все ок)
источник

А

Алешка in iOS Developers — русскоговорящее сообщество
Артур
просто оберни это в lazy var что бы гарантировать исполнение только 1 раз
override func layoutSubviews() {
       super.layoutSubviews()
       _ = DispatchOnce
   }
   
   private lazy var DispatchOnce: Void = {
       textView.textContainer.exclusionPaths = [UIBezierPath(rect: stackView.frame)]
   }()
прикольный метод, буду знать. Спасибо)
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
Артур
просто оберни это в lazy var что бы гарантировать исполнение только 1 раз
override func layoutSubviews() {
       super.layoutSubviews()
       _ = DispatchOnce
   }
   
   private lazy var DispatchOnce: Void = {
       textView.textContainer.exclusionPaths = [UIBezierPath(rect: stackView.frame)]
   }()
это странно. по хорошему нужно пересчитывать обтекание текста при изменении фрейма, какой смысл это делать только 1 раз
источник

А

Артур in iOS Developers — русскоговорящее сообщество
Алешка
прикольный метод, буду знать. Спасибо)
только учти что такой метод не является потокобезопасным
источник