Я пытаюсь создать изображение UIView
с CALayer
подслоями. С помощью этого кодаUIGraphicsGetImageFromCurrentImageContext с CALayers
- (UIImage*)snapshot{
UIGraphicsBeginImageContext(self.bounds.size);
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return viewImage;
}
Я получаю изображение, но оно не точно отражает то, что отображается на экране. В частности, он не учитывает свойство маски CAShapeLayer
. Мои закругленные углы не отображаются на изображении.
Вот сравнение того, как на экране появится пример того, как она предстает в образе:
Просто чтобы прояснить, то изображение справа находится в том же положении, как старый объект, в основном растеризуя объект. Вот почему есть один и тот же фон; он не является частью объекта, который я захватываю.
Как я могу захватить изображение объекта, сохраняя маску CAShapeLayer
на изображении?
EDIT: Кажется, что это была маска слоя, а не путь.
Этот вид содержит множество подклассов UIButtons в качестве подзонов. Эти объекты подкласса UIButton содержат несколько CAShapelayers в качестве подслоев. Именно эти CAShapeLayers содержат закругленные углы. Как я мог сделать это, не забирая каждый CALayer как отдельный образ? – jadengeller
Это действительно не отвечает на вопрос. – jadengeller