iOS开发:如何从顶部缩小UIView的高度?
解决UIView从顶部缩减高度的问题
嗨,我来帮你搞定这个问题~
你现在遇到的情况是:调整customView高度时,它会从底部往上缩,而你想要的是从顶部往下缩(也就是底部位置不动,顶部下移来减小高度)。这是因为你当前的代码只修改了高度,却保持y坐标为0不变,导致视图的底部被迫向上移动,看起来像是从底部缩减。
要实现从顶部缩减的效果,你需要同时调整y坐标和height,核心是让视图的底部位置保持不变。举个例子,如果你的customView原本是铺满整个父视图的,修改后的代码应该是这样:
customView.frame = CGRect( x: 0, y: reduceHeightSize, // 顶部向下移动对应缩减的高度 width: self.view.frame.width, height: self.view.frame.height - reduceHeightSize // 高度同步减少 )
这样设置后,视图的底部位置计算下来和原来的底部位置完全一致(y + height = reduceHeightSize + (self.view.frame.height - reduceHeightSize) = self.view.frame.height),而顶部从原来的0下移到了reduceHeightSize,相当于从顶部砍掉了对应高度的区域,完美实现你想要的从顶部缩减高度的效果。
如果你的customView原本有自己的初始位置(比如初始y是originalY,初始高度是originalHeight),那逻辑也是一样的:新的y坐标设为originalY + reduceHeightSize,新的高度设为originalHeight - reduceHeightSize,这样底部位置会保持不变,顶部下移来缩小高度。
内容的提问来源于stack exchange,提问作者iOS.Lover
相关产品推荐
相关产品推荐

