首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在UINavigationBar上滑动画过程中,具有自定义宽度的UISearchBar消失

在UINavigationBar上滑动动画过程中,具有自定义宽度的UISearchBar消失,可以通过以下步骤实现:

  1. 首先,确保你已经将UISearchBar添加到了UINavigationBar上,并设置了自定义的宽度。
  2. 监听UINavigationBar的滑动事件,可以通过实现UINavigationBarDelegate的方法来实现。其中最常用的方法是navigationBar(_:didPop:),它会在滑动返回过程中被调用。
  3. navigationBar(_:didPop:)方法中,你可以获取到当前的导航栏状态,并根据需要进行处理。在这个场景下,你可以检查导航栏的alpha值来判断是否需要隐藏UISearchBar。
  4. 如果需要隐藏UISearchBar,你可以使用UIView的动画方法来实现平滑的过渡效果。例如,你可以使用UIView.animate(withDuration:animations:)方法来改变UISearchBar的frame属性,使其消失在导航栏中。

以下是一个示例代码:

代码语言:swift
复制
class ViewController: UIViewController, UINavigationBarDelegate {
    // 在这里添加你的UISearchBar和UINavigationBar
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 设置UINavigationBar的delegate
        navigationController?.navigationBar.delegate = self
    }
    
    func navigationBar(_ navigationBar: UINavigationBar, didPop item: UINavigationItem) {
        // 获取导航栏的alpha值
        let alpha = navigationBar.alpha
        
        // 如果导航栏的alpha值小于等于0.5,表示正在滑动返回
        if alpha <= 0.5 {
            // 使用动画隐藏UISearchBar
            UIView.animate(withDuration: 0.3) {
                // 设置UISearchBar的frame属性,使其消失在导航栏中
                self.searchBar.frame = CGRect(x: 0, y: -self.searchBar.frame.height, width: self.searchBar.frame.width, height: self.searchBar.frame.height)
            }
        }
    }
}

这样,当你在UINavigationBar上滑动返回时,具有自定义宽度的UISearchBar将会平滑地消失在导航栏中。请注意,这只是一个示例代码,你需要根据你的实际情况进行适当的调整。

推荐的腾讯云相关产品:腾讯云移动应用分析(MTA),产品介绍链接地址:https://cloud.tencent.com/product/mta

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS开发知识点

设置navBar背景,去掉黑线,试了好长时间,查了好多,这个对我适用 设置navBaritem颜色,以及nav Title颜色和字体大小 替换系统返回按钮图片,设计说自带太丑,一开始是自定义返回...:[[UIImage alloc] init]]; [[UINavigationBar appearance] setTranslucent:NO]; // 设置navBar按钮tintColor...-60) forBarMetrics:UIBarMetricsDefault]; 自定义返回按钮后,系统返回会失效,之前我一直每个界面都设置,打开关闭,后来发现直接可以设置所有的 self.navigationController.interactivePopGestureRecognizer.delegate...= self; // 侧返回,自定义返回按钮后生效,最顶部设置可以Push出来界面都有效 #pragma mark - gestureRecognizer delegate - // 侧返回...cancel,英文,但是产品强迫要中文,所以就只能改啊 // searchBar开始编辑时改变取消按钮文字 - (void)searchBarTextDidBeginEditing:(UISearchBar

17150

iOS学习—— UINavigationController返回按钮与侧返回手势研究

一 侧返回      侧返回是系统iOS7自带一种方便用户进行返回操作而推出一种新功能。开发过程中,对侧返回进行控制非常简单,主要就是启动侧手势和禁用侧手势。...而在这个模块,我们有某个或某些viewController需要禁用侧手势(一般需要禁用侧手势是因为返回或退出当前viewController时需要double confirm,一些填表页面比较常见...因为侧返回手势事实是由存在已久UIPanGestureRecognizer来识别并响应,它直接与UINavigationControllerview进行绑定,因此包含UIScrollView...自定义则会禁用侧返回手势。...backIndicatorImage,而leftBarButtonItem自定义则会使最左边返回箭头消失backIndicatorImage。

6.7K60
  • Flutter 知识集锦 | 基于 Flow 实现滑动显隐层

    当放手时,根据偏移量是否达到宽度一半,使用动画进行移出或者关闭。 偏移实现方式有很多,但需要自由地进行布局和矩阵变换、透明度,并且需要支持动画变化,Flow 组件是一个非常不错选择。...---- 另外,滑动过程中需要注意限制偏移量,使偏移量 0~size.width 之内;当放手时,通过动画控制器来驱动动画,使用补间让偏移量运动到 0 (打开) 或 size.width(关闭) 。...动画使用 动画使用,主要是通过 AnimationController 动画控制器来驱动数值变化;放手时 Tween 创建补间动画器,监听动画器数值变化更新偏移量。...这样,基于 Flow 实现自定义布局,就可以根据手势和动画,完成特定交互功能。从这里可以看出 Flow 自定义布局灵活性非常强,很多疑难杂症,都可以使用它来完成。...比如企业微信中:侧展示左栏,而且上层不会全部消失,通过 Flow 来自定义布局就很容易实现。大家可以基于本文,自己实现一下作为练习。那本文就到这里,谢谢观看 ~ 标题 关闭

    69821

    你可能需要为你 APP 适配 iOS11

    前言 前几天发现在做APPiOS11系统动画有异常,在其他系统设备都是正常动画操作是观察tableViewcontentOffset变化后执行,异常动画发生在tableView reloadData...如果有人看不清楚tab bar图标或文字,可以通过长按tab bar任意item,会将该item显示HUD,这样可以清楚看清icon和text。...要避免视图尺寸为0,可以从以下方面做: ● UINavigationBar 和 UIToolbar 提供位置 ● 开发者则必须提供视图size,有三种方式: ① 对宽度和高度约束; ② 实现 intrinsicContentSize...测试Demo中,创建tableView到显示出来过程中,contentSize计算过程如下图: Self-SizingiOS11下是默认开启,Headers, footers, and cells...值变化,如果是有动画是观察这两个属性变化进行,就会造成动画异常,因为估算行高机制下,contentSize值是一点点地变化更新,所有cell显示完后才是最终contentSize值。

    2.5K00

    # iOS导航栏控制Tips

    // 不显示动画,导航栏显示就比较突兀 [self.navigationController setNavigationBarHidden:YES]; // 显示动画时,导航栏显示就比较顺滑...setNavigationBarHidden:NO animated:YES]; } B页面: // 页面将要出现时,记录原始侧手势代理对象,并将手势代理设置为当前页面 - (void)viewWillAppear...self.navigationController.interactivePopGestureRecognizer.delegate = self; [self.navigationController setNavigationBarHidden:YES animated:YES]; } // 页面消失时...注意: 如果重写了导航栏leftBarButtonItem,那么侧返回功能也就失效了,需要侧返回功能需要自己处理。...原始堆栈数组中判断是否存在该类型控制器,如果存在记录其索引。 复制数组中将索引及上方所有控制器移除。 把将要push出来控制器添加到复制数组中。

    1.7K31

    iOS开发UINavigation系列四——导航控制器UINavigationController

    导航控制器是一个堆栈结构,只是其中管理对象是controller,通过push与pop进行controller切换,我们有两种方式可以创建导航控制器: //通过一个自定义导航栏和工具栏创建导航控制器...//iOS7之后,导航中右划会进行pop操作,设置这个enable可以控制设置手势是否失效 @property(nullable, nonatomic, readonly) UIGestureRecognizer... *interactivePopGestureRecognizer; 四、iOS8后导航新特性 //这个方法是为了iOS方法命名统一,导航中,其作用和push一样 - (void)showViewController...) BOOL hidesBarsWhenKeyboardAppears; //屏幕滑动时候隐藏导航栏,常用于tableView,隐藏导航栏,下滑显示,带动画效果 @property (nonatomic...navigationControllerPreferredInterfaceOrientationForPresentation:(UINavigationController *)navigationController NS_AVAILABLE_IOS(7_0); //下面两个方法可以对导航转场动画进行设置

    1.8K20

    你可能需要为你APP适配iOS11

    前言 前几天发现在做APPiOS11系统动画有异常,在其他系统设备都是正常动画操作是观察tableViewcontentOffset变化后执行,异常动画发生在tableView reloadData...如果有人看不清楚tab bar图标或文字,可以通过长按tab bar任意item,会将该item显示HUD,这样可以清楚看清icon和text。...要避免视图尺寸为0,可以从以下方面做: ● UINavigationBar 和 UIToolbar 提供位置 ● 开发者则必须提供视图size,有三种方式:  ① 对宽度和高度约束; ② 实现 intrinsicContentSize...测试Demo中,创建tableView到显示出来过程中,contentSize计算过程如下图: Self-SizingiOS11下是默认开启,Headers, footers, and cells...值变化,如果是有动画是观察这两个属性变化进行,就会造成动画异常,因为估算行高机制下,contentSize值是一点点地变化更新,所有cell显示完后才是最终contentSize值。

    82120

    qq侧

    一篇博客带大家实现了:Android 自定义控件打造史上最简单菜单 ,有兄弟看了以后说,你这滑动菜单过时了呀~QQ5.0效果还不错~~嗯,的确,一篇也承诺过,稍微修改上一篇代码,实现QQ5.0...我们菜单出现整个过程中,不断记录菜单显示宽度与其总宽度比值,是个从0到1过程,然后把0~1转化为1~0.7(假设内容区域缩小至0.7);不断去缩小内容区域; 对于区别3:也比较好办,上面已经可以得到...其实也比较简单,菜单出现过程中,不断设置菜单x方向偏移量;0时候完全隐藏,0.3时候,隐藏x方向偏移量为0.7个宽度,类推~~~ 好了,分析完毕,那么对于这些动画用什么实现最好呢?...;   与菜单宽度做除法运算,菜单隐藏到显示整个过程,会得到1.0~0.0这么个变化区间; 有了这个区间,就可以根据这个区间设置动画了; 1、首先是内容区域缩放比例计算: 我们准备让菜单出现过程中...菜单栏需要ListView拖动也是不会冲突了,上篇已经测试了; 关于动画属性范围:上面介绍特别清楚,比如内容我们是最小显示0.8,你要是喜欢0.6,自己去修改一下;包括偏移量,透明度等范围; 因为一篇已经写了如何把属性抽取成自定义属性

    2.1K60

    你可能需要为你 APP 适配 iOS 11

    本文介绍iOS11中UI方面做了哪些更新,有些更新可以为用户提供更加完美的体验,但也有的可能会给目前APP带来异常bug 前言 前几天发现在做APP iOS11 系统动画有异常,在其他系统设备都是正常...(command+向左箭头让模拟器横屏) 横屏时,iPhone,tab图标较小,tab bar较小,这样垂直空间可多放置内容。...如果有人看不清楚tab bar图标或文字,可以通过长按tab bar任意item,会将该item显示HUD,这样可以清楚看清icon和text。...要避免视图尺寸为0,可以从以下方面做: UINavigationBar 和 UIToolbar 提供位置 开发者则必须提供视图size,有三种方式: 对宽度和高度约束; 实现 intrinsicContentSize...测试Demo中,创建tableView到显示出来过程中,contentSize计算过程如下图: ?

    1.7K60

    ViewController及View生命周期1. 起因2. Controller生命周期3. View生命周期4. 内存警告

    这个阶段会加载一些高开销操作,例如:键盘弹出、特殊过程动画(比方说修改状态栏、导航条颜色等等)这些。...为了能够进一步搞清楚之间区别,我们不同屏幕运营一下这两个方法看看调度时间点。我们将Xcode默认使用5S去设置一下,屏幕大小是320*568,但是如果运行在6s上会怎么样。...下面做一个小测试,打印不同方法执行过程中,界面的长宽属性如何,结果如下: //viewDidLoad w:320.000000 h:568.000000 //viewWillAppear w:...自定义cell时候也有这种问题,如果在init中添加控件的话,那么self.frame.size.width也不一定是准确宽度,一般解决方法是使用[UIScreen mainScreen].bounds.size.width...而这种侧返回会出现什么问题呢?当触发侧返回时会调用系统自带viewWillDisappear:方法。

    1.4K30

    UINavigationController 导航控制器概念属性方法

    controller,通过push与pop进行controller切换,UINavigationController是将这些控件(UINavigationBar,UINavigationItem和UIToolBar...(iOS7之后,导航中右划会进行pop操作,设置这个enable可以控制设置手势是否失效) @property(nullable, nonatomic, readonly) UIGestureRecognizer...*barHideOnSwipeGestureRecognizer; 10、屏幕滑动时候是否隐藏导航栏,常用于tableView,隐藏导航栏,下滑显示,带动画效果 @property (nonatomic...,strong) UINavigationController *navigationController; ---- 方法 1、创建导航控制器两种方法 (1)通过一个自定义导航栏和工具栏创建导航控制器...navigationControllerPreferredInterfaceOrientationForPresentation:(UINavigationController *)navigationController; (5)下面两个方法可以设置导航转场动画

    2.1K60

    Android仿抖音右清屏左列表功能实现代码

    所以,很明显Item布局包一层,实现清屏和侧列表功能就可以了,这样每个房间都可以上下滑,切换房间。...切换以后,功能是每个房间里,互不影响,所以很好理解 我们项目中实现直播间上下滑切换功能是RecyclerView + 自定义LinearLayoutManager实现,这部分内容网上demo...但是实现过程中还是出现了问题,由于RecyclerView预加载功能,导致我们项目中,从第一个房间滑到下一个房间,过程中会新建两个Holder,这样Fragment替换就出了问题,切换房间后Fragment...} return true } } 2.3 颜色渐变 ​ 跟随手势滑动过程中还伴随左侧空白区域颜色渐变,这部分可以RightSlider移动过程中距离值关联起来,...xVelocity = 0) { // 滑入情况下,向右距离超过宽度1/3,滑出滑块 startX = offsetX endX = width - mSlideView!!.

    2.5K21

    SlidingMenu使用详解

    View,也可以是一个 Fragment (2) 使用简单方便,支持左和右等 (3) 自定义侧边栏显示动画 SlidingMenu 常用属性介绍: menu.setMode(SlidingMenu.LEFT...(R.dimen.slidingmenu_offset);//SlidingMenu划出时主页面显示剩余宽度 menu.setBehindWidth(400);//设置SlidingMenu菜单宽度...);//使SlidingMenu附加在Activity menu.setMenu(R.layout.menu_layout);//设置menu布局文件 menu.toggle();//动态判断自动关闭或开启...);//设置滑动区域 支持右侧划出菜单: //SlidingMenu可以同时支持划出左右两侧菜单,互不冲突,而且动画优美,体验良好。...mChildrenEnabled;替换为: return mViewAbove.onTouchEvent(e); 4、找到你菜单布局文件,根布局添加属性: android:clickable="true

    1.1K30

    Android滑动菜单框架完全解析,教你如何一分钟实现滑动菜单特效

    如果忘记了其中实现原理或者还没看过朋友,请先去看一遍之前文章 Android滑动菜单特效实现,仿人人客户端侧效果,史上最简单实现 ,因为我们今天要实现滑动菜单框架也是基于同样原理。...没错,基本这些代码和之前那篇文章代码大同小异,只不过以前这些代码是写在Activity里,而现在我们移动到了自定义View当中。 接着我来说明一下和以前不同部分。...因此在这里我们也可以看出,使用SlidingLayout这个布局前提条件,必须为这个布局提供两个子元素,第一个元素会作为左边布局偏移出屏幕,第二个元素会作为右边布局显示屏幕。...Acitivtylayout中引入我们自定义布局,并且给这个布局要加入两个直接子元素。 2. Activity中通过setScrollEvent方法,给一个View注册touch事件。...3.正在滑动时屏蔽掉内容布局事件。 4.当菜单布局展示时,点击一下右侧内容布局,可以将菜单隐藏。 5.修复刚打开程序时,菜单可能会短暂显示一下,然后瞬间消失bug。

    2.2K60
    领券