#ios #uiview #uikit #uiimageview #uiimage
#iOS #пользовательский интерфейс #uikit #uiimageview #uiimage
Вопрос:
Можно ли наложить UIView
изображение без использования UIImageView
конструктора интерфейсов?
Если нет, как бы вы сделали то же самое в коде?
Ответ №1:
Из документации UIView:
Фоны на основе изображений — для представлений, отображающих относительно статичный контент, рассмотрите возможность использования объекта UIImageView с распознавателями жестов вместо того, чтобы создавать подклассы и рисовать изображение самостоятельно. Кроме того, вы также можете использовать общий объект UIView и назначить свое изображение в качестве содержимого объекта CALayer представления.
Используя второй вариант, чтобы настроить someView так, чтобы у него был фон yourImage.png:
someView.layer.contents = (id)[[UIImage imageNamed:@"yourImage.png"] CGImage];
Ответ №2:
если под наложением UIView вы подразумеваете рисование его фона изображением, это можно сделать следующим образом:
someView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"yourImage.png"]];
Вы также можете добавить новый UIImageView, который охватывает ваш UIView
с помощью кода, инициализировать ваш UIImageView с тем же прямоугольником кадра, что и ваш UIView, и добавить его в качестве подвида.
Комментарии:
1. Правильно, поскольку функция colorWithPatternImage является настраиваемым методом, эта опция не отображается в IB. на выбор доступны только отдельные цвета. хотя ту же задачу можно было бы выполнить с IB, создав UIImageView, который покрывает ваш вид и имеет тот же фрейм. если вы не хотите, чтобы ваш вид был закрыт или нет, вы можете просто установить для его свойства .hidden значение YES / NO .
2. Я бы, вероятно, выбрал этот
UIImageView
вариант, поскольку предполагаю, что он будет более оптимизирован, чем генерация шаблона, который затем придется рисовать Core Graphics после определения плитки и т. Д.