需要在 swift 4 中设计自定义标签栏。 - 更新
Posted
技术标签:
【中文标题】需要在 swift 4 中设计自定义标签栏。 - 更新【英文标题】:Need to design custom tabbar in swift 4 . - Update 【发布时间】:2019-05-29 11:39:30 【问题描述】:我为 UITabBar 创建了自定义类,用于设计凸起的按钮和标签栏。实际上我需要在凸起的按钮后面给出波浪背景效果。 © 已经创建了圆形和凸起的按钮,但设置不准确不是波浪流效果。附上图片和代码。
更新:
我附上了我的下载代码和实际图像(我需要包含在资产中的标签栏设计)。 参考链接:https://drive.google.com/file/d/1evDPYdG2fGiMohWohJR2BQJNsKJHStQy/view?usp=sharing
func createPathCircle() -> CGPath
let radius: CGFloat = 40.0
let path = UIBezierPath()
let centerWidth = self.frame.width / 2
path.move(to: CGPoint(x: 0, y: 0))
path.addLine(to: CGPoint(x: (centerWidth - radius * 2), y: 0))
path.addArc(withCenter: CGPoint(x: centerWidth, y: 0), radius: radius, startAngle: CGFloat(180).degreesToRadians, endAngle: CGFloat(0).degreesToRadians, clockwise: true)
path.addLine(to: CGPoint(x: self.frame.width, y: 0))
path.addLine(to: CGPoint(x: self.frame.width, y: self.frame.height))
path.addLine(to: CGPoint(x: 0, y: self.frame.height))
path.close()
return path.cgPath
我需要实现的实际目标
need this
【问题讨论】:
@aunnnn 你能指导我吗? 我已经下载了你的项目,所以你想让按钮在正确的位置吗? @JohnHoang 是的,但实际上有两个问题,一个是所有设备的按钮放置问题,第二个是背景(即标签栏圈)需要像波浪形式一样设置。 @JohnHoang 第一部分我已经完成了,只剩下第二期了。 【参考方案1】:嗯,你刚刚在 ViewController.swift, button.frame 上固定了它的位置
像这样简单地减小 y 轴
button.frame = CGRect.init(x: self.tabBar.center.x - 32, y: self.view.bounds.height - 80, width: 64, height: 64)
【讨论】:
谢谢您,但问题仍然存在,您提到的设置在 İPhone 8 上有效,但是当我们更改设备(İPhone XR、XS 或 İPhone 8 plus)时,按钮设置受到干扰。如何为所有视图设置 ıt? 最后我使用 switch 语句完成了按钮位置 - UIScreen.nativeboundif UIDevice().userInterfaceIdiom == .phone switch UIScreen.main.nativeBounds.height case 1920, 2208: print("iPhone 6+/6S+/7+/8+") case 1792: print("iPhone XR") button.frame = CGRect.init(x: self.tabBar.center.x - 32, y: self.view.bounds.height - 114, width: 64, height: 64)
以上是关于需要在 swift 4 中设计自定义标签栏。 - 更新的主要内容,如果未能解决你的问题,请参考以下文章