Swift ios 10 NavBar Item 不断增长
Posted
技术标签:
【中文标题】Swift ios 10 NavBar Item 不断增长【英文标题】:Swift ios 10 NavBar Item keeps growing 【发布时间】:2016-11-14 19:43:56 【问题描述】:我有一个连接到 UIView 的 navBar 控制器,我有一个右栏按钮项,它是一个 V 形。我以编程方式创建了一个搜索栏。如果您单击人字形大约 20-100 次,它会不断增长,直到它离开屏幕。每次单击 V 形时,我都会在搜索栏中看到一个轻微的凸起。由于您不能对 navBar 施加约束,并且固定的空格键按钮项也不起作用。关于在哪里查看或如何解决此问题的任何建议?
func rotateChevron(animated: Bool = true)
let chevAnimate = animated ? 0.3 : 0.0
let chevIsDown = messagePicker.frame.origin.y == self.view.frame.height - (tabBarController?.tabBar.frame.height ?? 0)
let rotation: CGFloat = chevIsDown ? 0.0 : 180.001
UIView.animate(withDuration: chevAnimate, animations:
self.filterChevron.customView?.transform = CGAffineTransform(rotationAngle: rotation.degreesToRadians)
, completion: nil)
【问题讨论】:
【参考方案1】:经过一些研究,我在动画块中放置了一个强制 CGSize (w/h),这似乎解决了这个问题。我还发现变换动画不应该与帧一起使用,因为它每次都会移动图像的边界,这就是人字形起作用的原因。
func rotateChevron(animated: Bool = true)
let chevAnimate = animated ? 0.3 : 0.0
let chevIsDown = messagePicker.frame.origin.y == self.view.frame.height - (tabBarController?.tabBar.frame.height ?? 0)
let rotation: CGFloat = chevIsDown ? 0.0 : 180.001
filterChevron.customView?.frame.size = CGSize(width: 35, height: 30)
UIView.animate(withDuration: chevAnimate, animations:
self.filterChevron.customView?.transform = CGAffineTransform(rotationAngle: rotation.degreesToRadians)
, completion: nil)
【讨论】:
以上是关于Swift ios 10 NavBar Item 不断增长的主要内容,如果未能解决你的问题,请参考以下文章
UI NavBar高度的自定义(不同视图需要不同高度的nav bar)