2016-06-14 181 views
0

我在pttrns.com上发现此模式。我如何在Swift中使导航栏线条像这样弯曲?Swift中的自定义导航栏

Pattern image

+0

您可以通过设置导航栏半透明。然后在你的视图控制器中,你可以添加视图(可以是图像视图,带有图形的视图等)到顶部。 –

回答

0

您只需创建一个空白navigationBar,并使用ViewController的背景下产生这种效果。例如,用顶部的曲线创建图像,并将图像设置为ViewController。创建UIView覆盖整个ViewController和你类中设置

var mainScreenSize : CGSize = UIScreen.mainScreen().bounds.size // Getting main screen size of iPhone 

@IBOutlet weak var viewBG: UIView! 
let imageObbj:UIImage! = self.imageResize(UIImage(named: "YourImage")!, sizeChange: CGSizeMake(mainScreenSize.width, mainScreenSize.height)) 
self.viewBG.backgroundColor = UIColor(patternImage: image) 

编辑:

使用此功能设置图像大小的屏幕尺寸。我也改变了我的代码。

func imageResize (imageObj:UIImage, sizeChange:CGSize)-> UIImage{ 

     let hasAlpha = false 
     let scale: CGFloat = 0.0 // Automatically use scale factor of main screen 

     UIGraphicsBeginImageContextWithOptions(sizeChange, !hasAlpha, scale) 
     imageObj.drawInRect(CGRect(origin: CGPointZero, size: sizeChange)) 

     let scaledImage = UIGraphicsGetImageFromCurrentImageContext() 
     return scaledImage 
    } 
+0

图像的尺寸如何? –

+0

我用一个函数编辑我的答案,将图像的大小更改为大小os屏幕。您需要创建适合iPhone或iPad宽高比的图像。在我的项目中,我使用的是1080x1920,非常适合 – kileros

+0

好的,我用弯曲的路径制作矢量图像,然后将此图像作为Navbar的子视图添加,对不对? –

-1

你不能。您必须创建自己的自定义视图控制器,该控制器的行为与该示例的导航栏相似。

+0

can你做一个例子来更好地理解? –

+1

你可能刚刚评论过这个。这不是对这个问题的目标有建设性的答案。此外,还可以通过这些导航栏来实现。发布此类答案之前,您应该研究。 –