Ограничения кнопок приводят не к тому, что ожидалось в симуляторах и старых iphone

#ios #objective-c

Вопрос:

Итак, у меня есть кнопка улыбки внутри UIView, и я пытаюсь добавить кнопку в правом верхнем углу существующей кнопки. Я добавил ограничения для начала и конца, а также высоту и ширину кнопки . Поэтому, если я запускаю приложение на симуляторе с помощью симулятора iphone 8, я получаю немного справа от кнопки улыбки, хотя я поместил ее в xcode, касаясь кнопки улыбки. Кроме того, если я использую симулятор iphone 11, я получаю гораздо меньшую кнопку , что является совершенно другим странным поведением! Что я упускаю? У меня такое же поведение, если я запускаю приложение на своем устройстве iphone 8. Вот изображение из xcode с ограничениями.

введите описание изображения здесь

Вот ограничения кнопки улыбки

введите описание изображения здесь

Комментарии:

1. Нет смысла ограничивать в начале/конце супервизора, так как это будет зависеть от размера супервизора. Вы должны ограничить относительно центра изображения улыбки.

2. @Paulw11 И если я сосредоточу его на изображении улыбки, как я сдвину его немного вправо? Мне нужно еще одно ограничение для этого?

3. Не центрируйте его. Используйте смещение от центра. Поэтому создайте ограничение по центру X для плюса, равное центру x улыбки 15, и то же самое для центра y ( 15-это предположение, вам нужно будет поиграть, чтобы получить желаемое смещение).

4. @Paulw11 Твоя идея навела меня на другую идею. Просто добавил ведущую к изображению улыбки вместо супервизора, и это сработало. Я думаю, что и ваша, и моя идея верны, если я правильно понимаю…

5. Не имеет значения, смещены ли вы от переднего края и верха или от центра. Все, что меняется, — это сумма смещения. Дело в том, что вам нужно, чтобы ограничение было связано с изображением улыбки, а не с обзором.