Почему встроенныйContentSize для UIView всегда возвращает (-1.0, -1.0)? ⇐ IOS
-
Гость
Почему встроенныйContentSize для UIView всегда возвращает (-1.0, -1.0)?
UIView с правильным автоматическим макетом не возвращает правильный размер содержимого. Я получаю (-1.0, -1.0), хотя вижу, что он имеет правильный размер как в раскадровке, так и при запуске приложения.
Я попытался создать игровую площадку, которая создает UIView (a) и UILabel. Я добавляю свою метку как подпредставление (a) и устанавливаю ограничения слева, справа, сверху и снизу. Я также установил некоторый текст и проверил, что моя метка имеет правильный внутренний размер (так и есть). Мое представление (a) возвращает (-1.0, -1.0) для внутреннего размера контента.
Я также пробовал создать новый проект с раскадровкой. Я добавил UIView (a) в свое представление и центрировал его (X и Y). Я добавил UILabel в свое представление (a) и ограничил его слева, справа, сверху и снизу. Я вижу, что размеры вида (a) верны. Когда я запускаю приложение, я вижу, что оно по-прежнему имеет правильный размер. Мое представление (a) возвращает (-1.0, -1.0) для внутреннего размера контента.
Я нахожу это крайне странным, учитывая, что UIView создает макет в соответствии с собственным размером содержимого (т. е. подпредставлениями и связанными с ними ограничениями).
Предполагая, что все ограничения моих меток по краям моего (a) представления равны расстояниям 0, тогда я ожидаю, что мое (a) представление будет иметь внутренний размер содержимого, равный размеру кадра моей метки (который основан на внутренний размер этикетки, но это спорный вопрос).
Я искренне не понимаю, как представление может установить свой фрейм, эквивалентный внутреннему размеру его подэлементов, не имея при этом внутреннего размера содержимого.
(Кадр представления (a) возвращает правильный размер, но это на самом деле не отвечает на мой вопрос. Кроме того, это бесполезно для моей конкретной ситуации, но это выходит за рамки этого вопроса.)< /п>
UIView с правильным автоматическим макетом не возвращает правильный размер содержимого. Я получаю (-1.0, -1.0), хотя вижу, что он имеет правильный размер как в раскадровке, так и при запуске приложения.
Я попытался создать игровую площадку, которая создает UIView (a) и UILabel. Я добавляю свою метку как подпредставление (a) и устанавливаю ограничения слева, справа, сверху и снизу. Я также установил некоторый текст и проверил, что моя метка имеет правильный внутренний размер (так и есть). Мое представление (a) возвращает (-1.0, -1.0) для внутреннего размера контента.
Я также пробовал создать новый проект с раскадровкой. Я добавил UIView (a) в свое представление и центрировал его (X и Y). Я добавил UILabel в свое представление (a) и ограничил его слева, справа, сверху и снизу. Я вижу, что размеры вида (a) верны. Когда я запускаю приложение, я вижу, что оно по-прежнему имеет правильный размер. Мое представление (a) возвращает (-1.0, -1.0) для внутреннего размера контента.
Я нахожу это крайне странным, учитывая, что UIView создает макет в соответствии с собственным размером содержимого (т. е. подпредставлениями и связанными с ними ограничениями).
Предполагая, что все ограничения моих меток по краям моего (a) представления равны расстояниям 0, тогда я ожидаю, что мое (a) представление будет иметь внутренний размер содержимого, равный размеру кадра моей метки (который основан на внутренний размер этикетки, но это спорный вопрос).
Я искренне не понимаю, как представление может установить свой фрейм, эквивалентный внутреннему размеру его подэлементов, не имея при этом внутреннего размера содержимого.
(Кадр представления (a) возвращает правильный размер, но это на самом деле не отвечает на мой вопрос. Кроме того, это бесполезно для моей конкретной ситуации, но это выходит за рамки этого вопроса.)< /п>
Мобильная версия