Giter Site home page Giter Site logo

etnavbartransparent's People

Contributors

danshevluk avatar endertan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

etnavbartransparent's Issues

透明好像不太好用

主要是还有一个_UIBarBackground 是白色的
我加上了一些代码就可以了

            self.navigationController?.navigationBar.backgroundColor = UIColor.clear
            self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
            self.navigationController?.navigationBar.shadowImage = UIImage()
            self.navigationController?.navigationBar.isTranslucent = true
            self.navBarBgAlpha = 0
            self.navBarTintColor = UIColor.clear

手势失效的问题

xcode 9 ,pod 引入代码,主项目编译swift4,真机调试 系统ios10.3.2,iphone6plus,swizz的方法好像走了,但是手势还是没有反应。希望作者能看一下,谢谢。

UIImagePickerController issue

Hello,

Since I added ETNavbarTransparent my UIImagePickerController doesn't work (UIImagePickerControllerDelegate function are never performed). There is any chance of this issue came from the UINavigationControllerDelegate extension used in ETNavbarTransparent (which are also used for UIImagePickerController) ?

Thank you

导航条会瞬间消失

untitled

在首页第一次点击push, 导航条会瞬间消失,然后执行过渡动画。点击back按钮,也是如此。这里导航条没有过渡动画,请问怎么破? 我看支付宝里做的效果还不错。

Method “notifyWhenInteractionChangesUsingBlock” call time

I have a problem, the method above invoke always before the viewControllers system methods ,like "viewWillAppear", so when I pop to the controller with gesture , always the controller navBar didn't transparent? If I set the navBarAlpha = 0 in the "viewDidAppear", that work. So can you help me?

模态弹出navigationcontroller时Crash

image

image

image

复现步骤:

  1. 新建工程,pod 'ETNavBarTransparent' , install
  2. 模态弹出navigationcontroller(图一),导航栏self.navBarBgAlpha = 0;(图二)
  3. 弹出时crash(图三)。

帮忙抽空看一下这个问题

在10以下系统透明度为0失效问题

由于老版本的backdropview会有系统添加两个子view覆盖effectview

`if navigationBar.isTranslucent {
if #available(iOS 10.0, *) {
if let backgroundEffectView = valueForKey("_backgroundEffectView") as? UIView, navigationBar.backgroundImage(for: .default) == nil {
backgroundEffectView.alpha = alpha
return
}

        } else {
            if let adaptiveBackdrop = valueForKey("_adaptiveBackdrop") as? UIView , let backdropEffectView = adaptiveBackdrop.value(forKey: "_backdropEffectView") as? UIView {
                adaptiveBackdrop.alpha = alpha  //新
                backdropEffectView.alpha = alpha //旧
                return
            }
        }
    }
    
    barBackgroundView.alpha = alpha
}`

http://www.jianshu.com/p/b7818eba288c

有一个效果细节问题

qq20170317-150859 2x

就是如上图,我想下拉的时候的回弹空间背景是橙色,但是我很多时候,我下面的数据只有一两条。不不会是很多的。因为现在背景是设在TableView上的,所以就出现了上图的效果了。如果不设置背景色也不行,不设置的话,那么下拉的时候,就会有白色,不连续的效果,不好看。
tableView.tableFooterView = UIView();这个方式也不行。

事件穿透问题

当 navigationBar alpha 为0的时候,naviagtionBar 下面有事件有操作时,会被拦截掉

initialize warning

ETNavBarTransparent.swift#L43

Method 'initialize()' defines Objective-C class method 'initialize', which is not guaranteed to be invoked by Swift and will be disallowed in future versions

In Swift 3.1, Xcode 8.3.2

Maybe this will help you.

Fade title label with background

I'd like to fade the title label along with the background. I found one way of doing it for iOS 13+. I tried simply finding the label view and setting the alpha but as soon as the title updates the label is fully visible again.

if #available(iOS 13.0, *) {
            if let color = navigationBar.scrollEdgeAppearance?.titleTextAttributes [NSAttributedString.Key.foregroundColor] as? UIColor {
                navigationBar.scrollEdgeAppearance?.titleTextAttributes [NSAttributedString.Key.foregroundColor] = color.withAlphaComponent(alpha)
            }
            
            if let color = navigationBar.standardAppearance.titleTextAttributes [NSAttributedString.Key.foregroundColor] as? UIColor {
                navigationBar.standardAppearance.titleTextAttributes [NSAttributedString.Key.foregroundColor] = color.withAlphaComponent(alpha)
            }
            
            if let color = navigationBar.compactAppearance?.titleTextAttributes [NSAttributedString.Key.foregroundColor] as? UIColor {
                navigationBar.compactAppearance?.titleTextAttributes [NSAttributedString.Key.foregroundColor] = color.withAlphaComponent(alpha)
            }
        }

我用pod导进来有报错,要怎么改?

let originalMethod = class_getInstanceMethod(self, selector)
let swizzledMethod = class_getInstanceMethod(self, Selector(str))
method_exchangeImplementations(originalMethod, swizzledMethod)
这句话有错误。

当有present的动作之后,push会有几率导致宕机,卡住,进入后台再回到前台,push中会有黑屏

当有present的动作之后,push会有几率导致宕机,卡住,进入后台再回到前台,push中会有黑屏

iOS 12,iOS 13
导航栏设置:
interactivePopGestureRecognizer?.delegate = nil
navigationBar.barTintColor = UIColor.bg
navigationBar.tintColor = UIColor.f
navigationBar.titleTextAttributes =
[NSAttributedString.Key.font: UIFont.m17 ?? UIFont.systemFont(ofSize: 17, weight: UIFont.Weight.medium),
NSAttributedString.Key.foregroundColor: UIColor.f]
let navigaiotnBar = UINavigationBar.appearance()
let backImg = UIImage(named: "navigationbar_back_withtext_1")
navigaiotnBar.backIndicatorImage = backImg
navigaiotnBar.backIndicatorTransitionMaskImage = backImg

有几率:

  1. 当前ViewController的导航栏透明
  2. 当前ViewController present 一个ViewController
  3. dismiss之后回到透明导航栏的ViewController
  4. 再push,会卡住(好像在进行复杂的递归计算,导致UI卡住)
  5. 让app 进入后台,再返回前台,在当前透明导航栏的ViewController中push会有竖着的黑色区域出现

设置 isTranslucent 为 false 时导航栏透明失效

iOS 12.3

在 app 启动时设置
UINavigationBar.appearance().barTintColor = color
UINavigationBar.appearance().tintColor = color
UINavigationBar.appearance().titleTextAttributes = ...
UINavigationBar.appearance().isTranslucent = false //不使用半透明

ViewController中设置
self.navBarBgAlpha = 0
self.navBarTintColor = .white

导航栏并没有变透明

如果使用NavigationBar全局配置将会导致返回时依然出现导航栏

在程序启动后,为了方便控制全部导航栏的颜色,隐藏返回文字,使用自定义返回图标等。
全局设置了navBar (即 UINavigationBar.appearance())
然而这会导致页面第一次进入可以隐藏导航栏,但是再次进入的时候导航栏就会出现了(虽然在viewWillAppear中调用的影藏代码)
全局导航栏代码配置如下:
let navBar = UINavigationBar.appearance() let navBarColor = UIColor(hex: "232233") //和背景灰黑色一致 // navBar.backgroundColor = navBarColor //navBar.barTintColor = navBarColor

在测试中发现,再次进入页面的时候 在执行完viewWillAppear 后 打印的导航栏的backgroudView的透明度为 0 , 但是在viewDidAppear中再次打印时发现透明度已经被自动置为了 1 ,

无法正常使用. 导航栏黑色

正常在viewdidload设置透明度 = 0. navBarTintColor = .white. push过去导航栏是黑屏状态,. 无其他view. 单纯的控制器没有添加任何视图

Extra argument in call

get {
let alpha = objc_getAssociatedObject(self, &AssociatedKeys.navBarBgAlpha) as? CGFloat
if alpha == nil {
return 1.0
}else{
return alpha!
}
let alpha1 = objc_getAssociatedObject(self, &AssociatedKeys.navBarBgAlpha) //在这里会报错 Extra argument in call (在下面那个也会这样)

    }
    set {
        var alpha = newValue
        if alpha > 1 {
            alpha = 1
        }
        if alpha < 0 {
            alpha = 0
        }
        
        objc_setAssociatedObject(self, &AssociatedKeys.navBarBgAlpha, alpha, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) //在这里会报错 Extra argument in call (在下面那个也会这样)

我拖到我另一个项目中不会发生这个问题 但是在这个项目会报这种错

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.