使用导航栏和 iMessage 应用程序

     2023-03-22     244

关键词:

【中文标题】使用导航栏和 iMessage 应用程序【英文标题】:Using a Navigation bar and iMessage App 【发布时间】:2016-08-21 21:21:09 【问题描述】:

我正在使用 UISearchBar/UISearchController 和 MKMapView 创建一个 iMessage 应用程序。搜索栏在紧凑视图中完美显示(我知道您不能在紧凑视图中设置搜索栏,但仅用于测试)固定在屏幕顶部。但是,在展开视图中,搜索栏被 iMessage 导航栏隐藏。我无法将搜索栏限制在顶部布局指南,因为导航控制器位于顶部布局指南之上。关于如何将搜索栏限制在 iMessage 顶部导航栏下方的任何想法?

【问题讨论】:

【参考方案1】:

编辑: 我没有掌握 iOS10,也不了解 iMessage 应用程序。你的问题现在更有意义了。不管怎样,我会把我原来的答案写在这里。


这是一个项目,它具有来自苹果的原始 iMessages 应用的基础。当然还有 更多 需要调整,但它应该可以帮助您入门。

显示带有消息的表格视图,搜索栏最初是隐藏的,除非您向上滚动找到它,一旦您单击搜索栏,导航栏就会隐藏,搜索栏也会显示取消按钮。

如果您想下载整个项目以便查看我是如何设置故事板的,您可以在此处下载该项目。 http://www.filedropper.com/forjeremykelleher

import UIKit

class TableViewController: UIViewController, UITableViewDelegate, UITableViewDataSource 

@IBOutlet weak var tableView: UITableView!
var messages = [Int]()

override func viewDidLoad() 
    super.viewDidLoad()

    for x in 0...25 
        messages.append(x)
    

    // Start with the tableview scrolled down by 44
    // so the search bar doesn't show up only until you scroll back up
    // Like in the iMessage App.
    let height = tableView.tableHeaderView?.frame.size.height
    let pointXY = CGPoint(x: 0, y: height!)
    tableView.setContentOffset(pointXY, animated: false)


func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    return messages.count


func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
    let cell = tableView.dequeueReusableCellWithIdentifier("cell") as! TableViewCell
    cell.messageLabel.text = "Message # \(indexPath.row)"

    return cell




extension TableViewController: UISearchBarDelegate 

func searchBarTextDidBeginEditing(searchBar: UISearchBar) 
    // Hide the navigation bar when they press on search
    navigationController?.setNavigationBarHidden(true, animated: true)
    searchBar.setShowsCancelButton(true, animated: true)


func searchBarCancelButtonClicked(searchBar: UISearchBar) 
    navigationController?.setNavigationBarHidden(false, animated: true)
    searchBar.setShowsCancelButton(false, animated: false)
    searchBar.resignFirstResponder()




【讨论】:

我相信最初的问题是关于 iOS 10 中的新 iMessage 应用程序,而不是默认的 Messages 应用程序。 这个问题现在更有意义了。

iOS 7 UITableView 使用透明的导航栏和工具栏

...布时间】:2013-09-2420:10:54【问题描述】:就像Facebook/Venmo应用程序一样,如何设置UITableView以便内容将在半透明导航栏和底部工具栏下滚动,但您仍然可以滚动到顶部和底部而不会被导航或工具栏遮挡?谢谢!【问题讨论】:【参 查看详情

具有标签栏和导航栏的 iPhone 应用程序

】具有标签栏和导航栏的iPhone应用程序【英文标题】:iPhoneappwithtabbarandnavigationbaraspeers【发布时间】:2010-04-1506:08:55【问题描述】:我正在尝试编写一个使用导航栏和标签栏的应用程序(我正在收集)这是一种不寻常的方式。基... 查看详情

使用应用内设置和多个导航/标签栏和 textField 自定义背景更改 iOS 应用的主题

...间】:2014-03-1311:05:06【问题描述】:我有一个正在更新的应用程序。现在的主题是通用紫色,它是应用中每个屏幕的自定义 查看详情

通过标签栏和按钮导航屏幕

...】:2012-06-2218:13:44【问题描述】:我有以下问题:在我的应用程序中,有两种方法可以导航到其他屏幕:通过按钮或标签栏。所有屏幕都有调用其他屏幕的标签栏,但主屏幕是有按钮但没有标签栏的屏幕。当我开始开发我的应用... 查看详情

iOS 8 -- 对导航栏和状态栏应用模糊

...模糊。我的问题是:如何扩展边界以包含状态栏?我正在使用以下方法来创建模糊效果:-(void)addBlurEffectCGRectbounds=self. 查看详情

组合标签栏和导航栏控制器出现问题

...为我在Apple的文档中看到这条线说“使用标签栏控制器的应用程序还可以在一个或多个标签中使用导航控制器。当在 查看详情

iOS 8 启动图像文件 - 导航栏和状态栏

...动图像文件。我想要的启动图像非常简单(我认为与设置应用程序相同)-顶部的导航栏带有一个空的、分组的TableView.没有标题等。注意,我通常不使用InterfaceBu 查看详情

操作栏和导航抽屉 - 使用 Activity/Fragment 滑动操作栏

】操作栏和导航抽屉-使用Activity/Fragment滑动操作栏【英文标题】:ActionbarandNavigationdrawer-slideActionbarwithActivity/Fragment【发布时间】:2013-09-0403:45:07【问题描述】:我正在使用导航抽屉,如here:AndroidExample所示。目前,Actionbar是静态... 查看详情

如何在 IB 中设置导航栏和工具栏背景图像

...为图像?我知道如何在代码中执行此操作,并且已在我的应用程序中执行此操作。但现在我希望我的启动屏幕故事板反映应用程序,我必须在IB中执行此操作,因为当时应用 查看详情

导航栏和导航工具栏不是来自 App Delegate

...55【问题描述】:我是xcodeios7的新手。我在为iPhoneios7构建应用程序的导航控件方面遇到了很多困难。我不想使用故事板。我更喜欢以编程方式进行。我想做什么。我知道如何通过AppDelegate.m创建Navig 查看详情

固定导航栏下方的 MUI 应用栏和模糊内容

...滤器:blur(0),但它并没有像我想要的那样工作。我必须使用React/Styled-components/Material-UI在导航栏 查看详情

iOS 7 UI 变化:状态栏和导航控制器

...间】:2013-09-1511:53:37【问题描述】:我想为iOS7更新我的应用程序。我在iOS7上从应用商店安装了应用程序,它看起来不错,UI很完美。但是当我从Xcode5安装应用程序时,它会在状态栏下方显示导航栏和其他视图。我阅读了建议使... 查看详情

Cordova Android 应用程序导航栏和状态栏闪烁或变为纯白色

】CordovaAndroid应用程序导航栏和状态栏闪烁或变为纯白色【英文标题】:CordovaAndroidappNavigationBarandStatusBarflickerorturnsolidwhite【发布时间】:2021-11-0109:05:14【问题描述】:我们正在ZebraTC-57设备上使用Cordova9.0将我们的Web应用程序部署... 查看详情

iOS:导航顶栏和 UIviewController 的其他内容之间的线

...08-1216:15:45【问题描述】:我使用Swift3和Xcode8.1创建了一个应用程序,我有一个带有导航栏的视图控制器,我的视图在导航栏和其他viewController的内容之间显示了一条线( 查看详情

如何一起使用底部导航栏和侧边导航栏,我的侧边导航按钮不显示,而是底部导航

】如何一起使用底部导航栏和侧边导航栏,我的侧边导航按钮不显示,而是底部导航【英文标题】:Howtousebottomnavigationbarandsidenavigationbartogether,mysidenavigationbuttonisnotshowingwhenibutbottomnavigation【发布时间】:2020-01-2910:54:24【问题描述... 查看详情

如何使用情节提要正确地转到嵌入式选项卡栏和导航控制器?

...ds?【发布时间】:2012-09-1718:31:03【问题描述】:我有一个应用程序,用户可以在其中从选择轮中选择他们的国家/地区。出现警报并要求他们确认更改。如果他们确认,它会将他们带到不同的视图,然后他们可以从类别列 查看详情

UITableView:向上滑动时收缩标签栏和导航栏

...发布时间】:2014-08-1116:16:40【问题描述】:场景我有一个应用程序使用标签栏控制器(屏幕底部)和导航控制器(屏幕顶部)UI设计。在一个视图控制器上,我有一个UITableView,其中包含用户将“向上滑动”以滚动表格以查看内... 查看详情

使用搜索栏和大标题导航栏拉刷新问题

】使用搜索栏和大标题导航栏拉刷新问题【英文标题】:Pulltorefreshissueusingsearchbarandlargetitlenavigationbar【发布时间】:2018-06-1208:19:08【问题描述】:在导航控制器中使用大标题导航栏和搜索栏时出现问题,当我尝试拉动刷新时,ta... 查看详情