A CALayer
- это плоскость, которую нельзя сложить.Если вы не напишите для него фильтр основного изображения, например, эффект скручивания страницы, но если вам нужен частный API, а не вариант.
Вам необходимо разделить представление на два представления и сымитировать сгиб путем преобразованиядва CALayer
s одновременно.
По умолчанию преобразование слоев не имеет перспективы, поэтому вы также должны настроить это:
transform.m34 = 1.0 / -2000;
OK Давайте еще яснее: Разделитьвид в два и сложите их:
Ваш вид иерархии в соответствии с изображением, которое вы разместили, выглядит примерно так:
+ UIView - Root view
+ UIImageView - The persons face
+ UILabel - The label with title
+ UILabel - The label with company name
+ UILabel - The label with a short description.
+ UILabel - The label with e-mail
+ UILabel - The label with web address
+ UILabel - The label with phone number
Итак, добавьте два новых представления в эту иерархию представлений дляцель складывания, вот так:
+ UIView - Root view
+ UIView - Top half of the card
+ UIImageView - The persons face
+ UILabel - The label with title
+ UILabel - The label with company name
+ UILabel - The label with a short description.
+ UIView - Bottom half of the view
+ UILabel - The label with e-mail
+ UILabel - The label with web address
+ UILabel - The label with phone number
Не слишком сложно.Теперь анимируйте только два представления, используемые для группировки верхней и нижней половины.
Я не напишу для вас код, но еще один важный совет, который упростит задачу: измените опорные точки представления для анимации!Вы не хотите вращать их за свои собственные центры, вместо этого сдвиньте центр вращения, чтобы выровнять их по краям.
topView.layer.anchorPoint = CGPointMake(0.5f, 1.0f);
bottomView.layer.anchorPoint = CGPointMake(0.5f, 0.0f);