如何在导航栏后面显示图像?

时间:2018-11-20 05:12:41

标签: ios swift

有什么想法如何在导航栏后面显示图像,以及如何在向下滚动时显示“完整”导航栏?

谢谢!

enter image description here enter image description here

3 个答案:

答案 0 :(得分:1)

<com.luseen.spacenavigation.SpaceNavigationView
    android:id="@+id/space"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="bottom"
    app:active_item_color="@color/colorAccent"
    app:centre_button_color="@android:color/holo_green_light"
    app:inactive_item_color="@android:color/darker_gray"
    app:space_background_color="@android:color/holo_green_light"
    app:centre_button_icon="@drawable/img1"
    app:space_item_icon_size="@dimen/space_item_icon_default_size"
    app:space_item_icon_only_size="@dimen/space_item_icon_only_size"
    app:space_item_text_size="@dimen/space_item_text_default_size"
    app:layout_behavior="com.luseen.spacenavigation.SpaceNavigationViewBehavior"/>

您可以这样做。我希望它能工作。

答案 1 :(得分:1)

您的参考图像可以通过使用以下代码来获得。 这里是TableView的标头大小。在此条件scrollOffset > 180下,您可以更改UIColor元素的NavigationBar

func scrollViewDidScroll(_ scrollView: UIScrollView) {

    let scrollOffset = scrollView.contentOffset.y

    UIView.animate(withDuration: 0.1) {
         self.navigationView.alpha = scrollOffset > 180 ? 1 : 0
    }

}

TableView的标题中,应将所需的图像分配为HeaderView

答案 2 :(得分:1)

您可以在视图控制器的viewDidLoad()中的导航项的标题视图中添加图像

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
    let image = UIImage(named: "YOURIMAGE")
    navigationItem.titleView = UIImageView(image: image)
}

下面是使用CGRect的示例。

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
    let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 38, height: 38))
    imageView.contentMode = .ScaleAspectFit
    let image = UIImage(named: "YOURIMAGE")
    imageView.image = image
    navigationItem.titleView = imageView
}