Я работаю над приложением для iPhone, которое имеет непрямоугольные элементы пользовательского интерфейса. В настоящее время я создаю подклассы UIView
, а в drawRect
я использую CGPathRef
для рисования черной границы и цветного интерьера.
Хотелось бы, чтобы эти предметы выглядели больше как «кнопки», поэтому я хотел бы иметь некоторые из тех же «стеклянных эффектов», которые используются, например, значки для приложения для iPhone (если для UIPrerenderedIcon
не установлено значение true) или для других кнопок.
Я охотился и нашел это, которое, кажется, близко к тому, что мне нужно:
Градиенты на UIView и UILabels на iPhone
Но мне трудно понять, как обрезать градиент по форме.
Похоже, что свойство mask
в представлении было бы правильным местом для перехода, что, похоже, потребовало бы от меня создания нового CALayer
объекта с каким-то образом примененным к нему отсечением.
Я надеюсь, что для этого есть хорошая удобная функция, хотя, если мне нужно написать что-то более сложное, это тоже нормально. Мне просто трудно понять, как применить путь в качестве маски. Я не уверен, что мне нужно создать новый контекст рисования и нарисовать путь к нему? А затем используйте CGContextClip
?
Я думаю, что у меня есть много правильных частей, я просто не могу понять, как их собрать.
Может ли кто-нибудь указать мне правильное направление? (Я рад прочитать больше в документации, просто укажите мне правильное направление, пожалуйста.)