UIView不会从底部向上滑动

时间:2017-09-08 17:25:15

标签: ios swift uiview

我正试图让UIView从屏幕底部向上滑动。我创建了UIView作为单独的nib文件。我最初将视图添加到屏幕的视口之外,然后设置y值的动画以使其向上滑动。

self.bannerView = BannerView(frame: CGRect(x: 10, y: self.view.bounds.height, width: self.view.bounds.width - 10, height: 44))
self.collectionView?.addSubview(self.bannerView!)

UIView.animate(withDuration: 0.5) {
    self.bannerView?.frame.origin.y = self.bannerView!.frame.origin.y - 64
}

然而它似乎不起作用。视图没有显示出来。但计算似乎是正确的。我无法弄清楚出了什么问题。

示例项目已上传here

3 个答案:

答案 0 :(得分:2)

您必须更改整个frame而不是y值 - 这不起作用。

如图所示 - 您可以参考https://youtu.be/2kwCfFG5fDA?list=PL0dzCUj1L5JGKdVUtA5xds1zcyzsz7HLj&t=993,其中确切地说您的问题已通过更改框架来证明其工作正常。上面的示例视频也位于Swift中,因此符合您在问题中的需求。

答案 1 :(得分:0)

我没有验证你的数学但是尝试设置整个帧而不是更改指定帧的属性,因为那样不起作用。

var frame = self.bannerView!.frame
frame.origin.y = frame.origin.y - 64
self.bannerView?.frame = frame

答案 2 :(得分:0)

一线解决方案:

self.bannerView?.frame = self.bannerView!.frame.offsetBy(dx: 0, dy: -64)

(将其粘贴到动画块内)