基本上,我正在创建一个Tinder风格的布局,其中UIView堆叠在彼此的顶部。为了获得圆形UIView后面的阴影,我创建了一个自定义UIView,名为
MainSwipeCardView
它由两个视图组成。一个叫做
SwipeCardView
它的背后是一个
ShadowView.
然后,我依次创建MainSwipeCardView的一个实例,并设置它的框架。
func addCardFrame(index: Int, cardView: MainSwipeCardView){
cardsView.append(cardView)
var cardViewFrame = bounds
let horizontalInset = (CGFloat(index) * self.horizontalInset)
let verticalInset = CGFloat(index) * self.verticalInset
cardViewFrame.size.width -= 2 * horizontalInset
cardViewFrame.origin.x += horizontalInset
cardViewFrame.origin.y += verticalInset
cardView.frame = cardViewFrame
}
框架的设置取决于卡片的索引。顶部的将是最大的,然后底部的将有一些水平和垂直的插图等。
如你所见,我正在设置
cardView.frame = cardViewFrame
-
cardViewFrame
是我们上面计算的框架。然而,问题是cardView是MainsViewSpecardView类的自定义视图。此视图中的内容(简单的阴影UIView和自定义SwipeCardView)需要根据父视图的框架设置其框架。我不能正确地做到这一点。
问题:
如何仅在设置父视图的框架后设置两个自定义子视图的框架。由于父视图的框架不同(取决于索引),我希望子视图的大小也相应地改变。