Я беру онлайн-курс cs193p, чтобы изучить разработку для iOS. Тем не менее, я столкнулся с проблемой, когда попытался добавить ограничение расстояния между двумя представлениями стека. (Тот, у которого есть синие кнопки (view1) и тот, у которого есть ярлыки (view2))
Я хочу, чтобы view1 расширялся, оставляя view2 неизменным. Но оказалось, что view2 всегда расширяется, даже если я установил приоритет объятия контента для view 2 выше, чем у view1. Как я мог решить эту проблему?
Большое спасибо! Это решает проблему.
Если вы не указали ширину меток явным образом, их ширина будет определяться их внутренним размером содержимого. Приоритет обнимания этикеток низкий, поэтому этикетки могут свободно расти, чтобы заполнить свой контейнер. Таким образом, содержащее представление стека всегда будет обнимать свое содержимое, поскольку метки могут увеличиваться. Вам необходимо ограничить рост ширины меток, чтобы приоритет объятия представления стека имел какой-либо эффект.
Решение состоит в том, чтобы либо дать вашим этикеткам явное ограничение ширины, либо, что еще проще, установить для них высокие приоритеты объятий. Это предотвратит рост меток и позволит стеку соответствовать минимальному размеру метки. Наконец, Автоматический макет выберет вместо этого расширение view1
.
Большое спасибо, я ценю это!
Попробуйте также установить высокий приоритет содержания ваших ярлыков. Я подозреваю, что, поскольку метки могут расширяться, представление стека, которое их содержит, всегда считается охватывающим его содержимое.