Почему моделирование столбцов таблицы не позволяется?

Объединенный с ответом Mike McMaster, Вы могли бы хотеть сделать что-то как:

[myTextView setDelegate: self];

...

- (void)textViewDidChange:(UITextView *)textView {
  if (myTextView == textView) {
     // it changed.  Do resizing here.
  }
}
17
задан Brian Tompsett - 汤莱恩 30 September 2016 в 19:26
поделиться

4 ответа

Ян Хикси подробно объясняет здесь: Тайна того, почему только четыре свойства применяются к столбцам таблицы . Соответствующая цитата:

Цвет текста зависит от свойства «цвет» его элемента. Если не указано иное, свойство «цвет» (в основном) по умолчанию имеет значение «наследовать», что означает «принимать значение родительского элемента».

Таким образом, для некоторого текста в ячейке цвет определяется свойством «цвет» ячейки, взятой из строки, взятой из таблицы, взятой из родительской таблицы и т. д.

А как насчет столбца? Что ж, столбец не является одним из предков ячейки, поэтому к нему никогда не обращаются! В этом и заключается проблема.

11
ответ дан 30 November 2019 в 13:34
поделиться

Одно слово: двусмысленность. Ячейки должны быть дочерними по отношению к строкам; иначе это не был бы стол. Но нет колонны, из которой можно было бы спуститься. Использование colspan означает, что одна ячейка может находиться в двух столбцах. Вместо того, чтобы пытаться придумать какой-нибудь запутанный выход, почему бы просто не позволить разработчику разместить класс в каждой n-й ячейке?

Если вы внимательно посмотрите на спецификацию, на которую вы ссылаетесь, вы увидите попытки разрешения двусмысленности. Свойство width указывает минимум; фон уступает место строке и ячейке; и граница ссылается на «алгоритм разрешения конфликтов». Единственная причина, по которой существует даже алгоритм для границы , заключается в том, что разумно понятно, кто должен «выиграть» (подробности см. в алгоритме). Но можете ли вы представить себе попытку выяснить, какой цвет или шрифт должен «выиграть»?

3
ответ дан 30 November 2019 в 13:34
поделиться

Просто дикий удар в темноте, основанный на моем ограниченном понимании:

Я думаю, что стилизация с помощью элементов, связанных со столбцами, ограничена, потому что хотя и представляют собой столбцы ячеек, на самом деле он не содержит их (фактически они содержатся в s). С этим связаны проблемы приоритета, специфичности и каскадирования (поскольку каскадирование может выполняться только между содержащимися элементами / элементами контейнера) - при конфликте правил стиля из и ( (который будет одним и тем же уровнем в иерархии множественного наследования) - какой именно элемент должна фактически использовать?

Что касается того, почему разрешена именно эта горстка атрибутов стиля: без понятия.

8
ответ дан 30 November 2019 в 13:34
поделиться

Возможно, потому что каждая строка в таблице не обязательно должна отображать ячейку для вашего столбца (например, из-за colspan). От какого столбца эта ячейка должна унаследовать свой стиль? Только предположение.

0
ответ дан 30 November 2019 в 13:34
поделиться