Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift:如何更改导航控制器';s高度,而不添加工具栏_Ios_Swift_Uinavigationcontroller_Uisegmentedcontrol_Uinavigationitem - Fatal编程技术网

Ios Swift:如何更改导航控制器';s高度,而不添加工具栏

Ios Swift:如何更改导航控制器';s高度,而不添加工具栏,ios,swift,uinavigationcontroller,uisegmentedcontrol,uinavigationitem,Ios,Swift,Uinavigationcontroller,Uisegmentedcontrol,Uinavigationitem,如何在不添加工具栏的情况下更改导航控制器的高度? 下面是我想要构建的苹果iBooks应用程序的一个例子。 我有一个解决方案,但并不完美(在导航控制器下面添加一个工具栏,但它非常难看) 我想这就是你想要的, 截图 您不能更改导航栏高度,但可以在其下放置视图,并使用自动布局和阴影使其看起来像导航栏的一部分。将其设置为您创建的类 编写一个视图作为扩展数据库 class ExtendNavView:UIView{ override func willMoveToWindow(newWind

如何在不添加工具栏的情况下更改导航控制器的高度? 下面是我想要构建的苹果iBooks应用程序的一个例子。 我有一个解决方案,但并不完美(在导航控制器下面添加一个工具栏,但它非常难看)


我想这就是你想要的, 截图

您不能更改导航栏高度,但可以在其下放置视图,并使用自动布局和阴影使其看起来像导航栏的一部分。将其设置为您创建的类

  • 编写一个视图作为扩展数据库

    class ExtendNavView:UIView{
        override func willMoveToWindow(newWindow: UIWindow?) {
           let scale = UIScreen.mainScreen().scale
           self.layer.shadowOffset = CGSizeMake(0, 1.0/scale)
    
           self.layer.shadowRadius = 0;
           self.layer.shadowColor = UIColor.blackColor().CGColor
           self.layer.shadowOpacity = 0.25
         }
     }
    
  • 拖动UIView并将其置于导航栏下,然后设置autolayout使其始终位于导航栏下

  • 更改viewController中的导航栏属性

    class ViewController: UIViewController {
        override func viewDidLoad() {
            self.navigationController?.navigationBar.translucent = false
            self.navigationController?.navigationBar.shadowImage = UIImage(named: "TransparentPixel")
         self.navigationController?.navigationBar.setBackgroundImage(UIImage(named:"Pixel"), forBarMetrics:UIBarMetrics.Default)
    
          }
      }
    
  • 此处使用的两个图像(注意:它们是半透明的

    象素

    url=“”

    透明像素

    url=“”

    你也可以看看苹果的示例项目,你也可以在那里找到这两张图片

    你可以创建子类
    UIView
    来创建它如果你能在swift/storyboard中提供答案,我会很感激的。我发布的内容是使用autolayout,你需要使用autolayout在ExtendView下创建视图,因为它不能容纳两行意思是bar项到导航标题良好解决方案的级别,但它不能使导航栏半透明,即使在苹果的示例项目中也是如此。如果你想使用这个解决方案,你将没有半透明的导航栏。