iOS之 搜索app的实现

iOS(四)动漫App:一 首先贴上成品图片                          接着依次讲解程序: 在这次程序中没有用苹果提供的Main.storyboard,而是自己写了ViewController(继承UITabBarController,是程序的Controller),还有一个程序第一次运行的时候会出现的欢迎界面firstViewControlller,先将Main Interface中的内容 阅读详情

前几次零零散散的讲了一些ios的基础知识。本次,串起来。来全新建一个搜索的app。

一,新建一个simple application 工程。iphone的。

二,main.storyboard中,新建navigationg。 editor-》embed in-》navigation。

再添加2个 view controller。分别是 搜索结果页 和 第三页,展示页面。 这样首页就是搜索第一页,第二页是 搜索结果页面,第三页,是用户点击搜索结果后的展示页面。

三,把所需要的图片导入到 support files中,注意是copy模式的。再来一个text,拖到第一页上。

四,给text 加上active。连接到view controller.m的函数text search中。打开双页面,添加active。类型是:did end on exit动作。这就是,在输入框中按下回车之后,触发的事件。

- (IBAction)textsearchbutton:(id)sender

{

   NSString *name =self.textsearch.text;

   NSLog(@"%@", name);

    [selfsearch:name];

}


其中search是自定义的函数。

- (void) search:(NSString *)name

{

    // 设置我们之后解析XML时用的关键字,与响应报文中Body标签之间的getMobileCodeInfoResult标签对应

    matchingElement =@"entries";

    //创建SOAP消息,内容格式就是网站上提示的请求报文的实体主体部分

   NSString *soapMsg = [NSStringstringWithFormat:

                         @"<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:web=\"http://webservice.kbhn/\">"

                        "<soapenv:Header/>"

                        "<soapenv:Body>"

                        "<web:getresultbyname2>"

                        "<!--Optional:-->"

                        "<name>%@</name>"

                        "<!--Optional:-->"

                         "<pageNumber>1</pageNumber>"

                        "</web:getresultbyname2>"

                        "</soapenv:Body>"

                        "</soapenv:Envelope>", name,@""];

    

    // 将这个XML字符串打印出来

   NSLog(@"%@", soapMsg);

    //创建URL,内容是前面的请求报文报文中第二行主机地址加上第一行URL字段

    NSURL *url = [NSURLURLWithString:@"http://xxxx/webservice/query"];

    //根据上面的URL创建一个请求

    NSMutableURLRequest *req = [NSMutableURLRequestrequestWithURL:url];

   NSString *msgLength = [NSStringstringWithFormat:@"%lu", (unsignedlong)[soapMsglength]];

    //添加请求的详细信息,与请求报文前半部分的各字段对应

    [req addValue:@"text/xml;charset=UTF-8"forHTTPHeaderField:@"Content-Type"];

    [req addValue:msgLengthforHTTPHeaderField:@"Content-Length"];

    //设置请求行方法为POST,与请求报文第一行对应

    [req setHTTPMethod:@"POST"];

    // 将SOAP消息加到请求中

    [req setHTTPBody: [soapMsgdataUsingEncoding:NSUTF8StringEncoding]];

    // 创建连接

    conn = [[NSURLConnectionalloc]initWithRequest:reqdelegate:self];

   if (conn) {

       webData = [NSMutableDatadata];

    }

}

第一行 - 代表这是只能类的对象才能使用的函数,相当于非静态函数。也有+,表示类函数,既C++中的静态函数,不用类成员既可以调用。

然后是函数返回值,函数名称,:之后是函数的参数类型 和参数名称。

这里使用了,

NSXMLParserDelegate,  NSURLConnectionDelegate 进行发送和xml的解析。


五,在3个view controller中,添加segue。添加方法是:在


中,选择 黄色的 view controller 右键拖动到 另一个黄色的 view controller中。选择 customs 类型。就建立了 controller之间的 segue了。给他们分别命名。

新建2个 controll类。关联到这2个view上。



关联。

到class 黄色的view 连接到类 就行了。

六,开始做第三页。

把各种label image 控件都放到view中。在拖动到关联关系中。


第三页如图所示。


完成之后,加赋值函数:


// 文档结束

-(void)parserDidEndDocument:(NSXMLParser *)parser

{

    // 开始给页面复植

    [namesetNumberOfLines:0];

    [namesizeToFit];

    name.font = [UIFontsystemFontOfSize:12];

    name.text = [dictionaryobjectForKey:@"name"];

    

    [countrysetNumberOfLines:0];

    [countrysizeToFit];

    country.font = [UIFontsystemFontOfSize:8];

    country.text = [dictionaryobjectForKey:@"country"];

    

    [specialitysetNumberOfLines:0];

    [speciality sizeToFit];

    speciality.font = [UIFontsystemFontOfSize:8];

    speciality.text = [dictionaryobjectForKey:@"speciality"];

    

    [telsetNumberOfLines:0];

    [telsizeToFit];

    tel.font = [UIFontsystemFontOfSize:8];

   tel.text = [dictionaryobjectForKey:@"tel"];

    

    [organizationsetNumberOfLines:0];

    [organization sizeToFit];

    organization.font = [UIFontsystemFontOfSize:8];

    organization.text = [dictionaryobjectForKey:@"organization"];

    

    NSURL *url = [NSURLURLWithString: [@"http://xxxxx"stringByAppendingString: [dictionaryobjectForKey:@"headpic"]]];

    UIImage *image = [UIImageimageWithData: [NSDatadataWithContentsOfURL:url]];

    [headpicinitWithImage:image];

    

    [emailsetNumberOfLines:0];

    [emailsizeToFit];

    email.font = [UIFontsystemFontOfSize:8];

    email.text = [dictionaryobjectForKey:@"email"];

    

    [degreesetNumberOfLines:0];

    [degreesizeToFit];

    degree.font = [UIFontsystemFontOfSize:8];

    degree.text = [dictionaryobjectForKey:@"degree"];

    

    [abstract1setNumberOfLines:10];

    [abstract1 sizeToFit];

    abstract1.font = [UIFontsystemFontOfSize:8];

    abstract1.text = [dictionaryobjectForKey:@"abstract1"];

    

    [docpdfpagesetNumberOfLines:0];

    [docpdfpage sizeToFit];

    docpdfpage.font = [UIFontsystemFontOfSize:8];

    docpdfpage.text = [dictionaryobjectForKey:@"docpdfpage"];

    

    [relativepeoplesetNumberOfLines:0];

    [relativepeoplesizeToFit];

    relativepeople.font = [UIFontsystemFontOfSize:8];

    relativepeople.text = [dictionaryobjectForKey:@"relativepeople"];

    

    NSURL *url2 = [NSURLURLWithString: [@"http://xxxx/thumbimg/"stringByAppendingString: [dictionaryobjectForKey:@"thumb"]]];

    UIImage *image2 = [UIImageimageWithData: [NSDatadataWithContentsOfURL:url2]];

    [thumbinitWithImage:image2];

    

    [self.urlsetNumberOfLines:0];

    [self.urlsizeToFit];

    self.url.font = [UIFont systemFontOfSize:8];

   self.url.text = [dictionaryobjectForKey:@"url"];

}


最后增加一些,特殊字符的过滤函数就行了。

iOS app的发布和真机调试,我下篇再讲。


iOS App快捷指令(App Intents)在系统搜索服务中注册shortcuts 网上很多资料都是关于的,但是只能实现快捷指令的添加,无法在系统搜索服务中搜索到。这时候就得用到了。下面实现一个简单的App快捷指令,实现点击指令唤醒App并对相应的指令进行页面跳转。/// 标题static var title: LocalizedStringResource = LocalizedStringResource("扫一扫")/// 描述= IntentDescription("扫一扫intent")/// 点击运行时是否打开App@MainActor。 阅读详情

相关推荐

49、iOS App开发:搜索栏与表格视图的实现与优化

本文详细介绍了如何在iOS应用中实现和优化带有搜索栏与表格视图的用户界面。内容涵盖从版本控制、界面设计与设置,到搜索功能模拟与界面优化的完整开发流程。通过具体步骤和代码示例,帮助开发者掌握使用UIViewController集成UISearchBar和UITableView的技巧,并解决常见的UI问题,如内容边距调整、键盘隐藏和状态栏区域扩展等。

rrr55的博客 59

iOS 跳转到应用所在的App Store市场

代码入下 #import "ViewController.h" @interface ViewController ()<UIWebViewDelegate> @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //添加webVie...

weixin_30823833的博客 344

iOS仿蜜芽App搜索界面完整实现与实战项目

尽管提供了丰富的API接口,但其默认样式往往难以满足品牌化设计需求。为了打造与“蜜芽”风格一致的搜索框,必须深入挖掘其内部视图结构并结合多种定制手段。默认的搜索图标(magnifying glass)和清除按钮(×)可能不符合品牌VI规范。可通过以下方式替换:// 调整图标尺寸适配:分别替换搜索和清除图标的图像资源。:微调图标位置,解决因图标尺寸不同导致的偏移问题。✅ 建议:自定义图标应保持18x18pt左右的标准尺寸,并导出@2x/@3x版本以适配Retina屏幕。

weixin_31715353的博客 1250

ios搜索(可实现模糊搜索 支持拼音检索 首字母等)

一、搜框中输入关键字的事件响应-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{ NSLog(@"输入的关键字是---%@---%lu",searchText,(unsigned long)searchText.length); //需要事先清空存放搜索结果的数组 [sel

9718

iOS原生图书App离线优先架构:Core Data+Spotlight本地搜索实战

在移动应用开发中,'离线优先'是一种保障用户体验连续性的核心架构理念,其本质是通过本地数据持久化、缓存策略与系统级索引协同,实现无网络环境下的功能可用性。技术原理上依赖 Core Data 等本地存储框架构建强一致性数据层,结合 NSPredicate 实现轻量全文检索,并利用 CoreSpotlight 将内容注入 iOS 系统搜索生态,从而获得 Siri 与主屏搜索直达能力。该方案显著提升 App Store 审核通过率与用户留存,广泛适用于电子书、知识库、文档类等对内容可达性要求高的场景。本文详解一个

weixin_31497453的博客 288

iOS新闻App完整Swift项目:带登录、收藏、搜索与SQLite本地管理

一套开箱即用的iOS新闻阅读应用源码,用Swift编写,Xcode可直接编译运行。启动后进入账号密码登录页,验证通过跳转主界面;首页以列表形式展示新闻标题,点击进入网页详情页;每条新闻右侧有收藏按钮,点击后存入SQLite本地数据库;收藏页单独列出所有已收藏新闻,含标题、原始链接和发布时间,支持左滑删除;顶部集成实时搜索框,输入关键词自动匹配并高亮相关新闻标题。项目采用分层架构设计,NewsDAL负责数据访问,BrowseNewsTableViewController处理浏览逻辑,CollectedNews

js777的博客 244

ios开发获取appstore上搜索出来的app的下载链接以及app的包名

前提: 公司有内部使用的业务部app以及对外部供客户使用的客户app,业务部app关于我们里面有个客户app下载页面,上面使用的是腾讯应用宝的微下载。 腾讯应用微下载,绑定了两个端,一个是ios端一个是android端,当用户使用相机扫描或者使用二维码扫描app扫描的时候,手机会打开浏览器跳转到 app下载地址,如果是android手机就跳转到chrome浏览器,如果是iphone手机则跳转到safari浏览器,这里说下iphone手机跳转到safari浏览器要配置的 地方,跳转到 safari浏览

u012381782的博客 2472

PMF5.0计算

EPA PMF5.0 计算步骤

nuistsy的博客 4543

iOS实现APP支持SpotLight搜索

#import &lt;CoreSpotlight/CoreSpotlight.h&gt;  CoreSpotlight.framework参考:http://blog.youkuaiyun.com/a416863220/article/details/51220375;参考:http://blog.youkuaiyun.com/chenyong05314/article/details/49491595;参考:http...

代码解释生活 1546

原子力显微镜AFM图像处理软件Gwyddion使用教程(图文)

Gwyddion使用教程Gwyddion简介Gwyddion user guide下载地址本次教程用的AFM扫描图像下载地址AFM/STM校准样品Gwyddion使用step1step2step3step4step5step6step7step8你没见过的CD磁道到底长啥样一张图总结 Gwyddion简介        &nbs...

王纯配的博客 5万+

SAP特殊采购类80实战:跨工厂生产配置避坑指南(附完整测试流程)

本文深入解析SAP特殊采购类80在跨工厂生产场景下的实战应用与配置要点。文章从核心业务逻辑出发,详细拆解了后台配置、主数据与BOM的“双工厂”思维模式,并提供了从创建需求到成品收货的完整测试流程。重点揭示了多层BOM下的需求传递陷阱及常见报错解决方案,旨在帮助SAP顾问及用户规避实施风险,实现资源的灵活调度与流程自动化。

wind6的博客 1139

IOS实现SpotLight搜索 让你的APP支持SpotLight搜索

随着项目的开发,功能需求越来越多,有的没什么卵用,有的倒是能提示不少逼格,这次接到的功能是实现IOS SpotLight搜索效果。 这个功能很早就有,主要功能是在IOS9系统界面下拉会出现搜索功能界面,在这里可以搜索关键信息,来展示应用内的内容,并且点击信息打开应用跳转具体页面等操作。这个功能还是很有用的,面对这越来越多的应用霸占你手机,给你的应用加上这么一个搜搜功能,还是有点与众不同,主要是提

不要停我的药 4839

Python脚本自动化芯片设计?PyAether实战教程带你玩转EDA

本文通过PyAether实战教程,详细介绍了如何利用Python脚本实现芯片设计自动化。内容涵盖环境搭建、核心对象模型解析,并重点演示了原理图自动生成、参数化单元创建及设计验证流程集成,帮助EDA工程师从重复性手动操作中解放,显著提升设计效率与一致性。

e4f5g6h的博客 1318

iOS实现APP直接跳转到App Store搜索界面

客户端直接跳转到App Store搜素界面@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/search?" 调用以下代码就可以实现: [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://itunes.apple.c

biao219的专栏 1300

瑞芯微RV1126B芯片实战:如何用3Tops NPU打造智能安防摄像头(附配置指南)

本文详细介绍了基于瑞芯微RV1126B芯片构建高性能智能安防摄像头的实战经验。文章深入剖析了其3Tops NPU与独立AI-ISP的协同优势,提供了从硬件选型、开发环境搭建、AI模型部署到系统调优的全流程配置指南,帮助开发者充分发挥芯片潜力,实现高效、稳定的智能视觉应用。

weixin_29281915的博客 444

金蝶云星空初级实施认证考题

Q4.[单选题] (1.5分) 总账中的多账簿账表主要是基于什么进行查看的Q47.[多选题] (2.5分) 销售订单的收款计划页签勾选预收之后,预收控制环节可以控制哪些节点?

m0_51994557的博客 3123

iOS开发之集成iOS9中的Core Spotlight Framework搜索App的内容

转载自:  http://www.cnblogs.com/ludashi/p/4867511.html iOS开发之集成iOS9中的Core Spotlight Framework搜索App的内容   Spotlight在iOS9上做了一些新的改进, 也就是开放了一些新的API, 通过Core Spotlight Framework你可以在你的app中集成Spotl

沸腾的泪水的专栏 2467

ros1 ubuntu22.04 安装教程

ROS1 ubuntu22.04 安装教程

autolabor的博客 9197

iOS应用外搜索之 Core Spotlight 适配

前言前段时间为APP做了应用外搜索的适配,也就是iOS Core spotlight服务的支持,可以让用户在iPhone系统中的下拉或者左滑搜索中搜索到APP中的内容,点击搜索结果可以直接跳转到APP中的相应结果页。现在iPhone的存储配置从7开始已经以32G作为基础配置了,也就意味着iPhone用户能安装的APP数量肯定会上升,安装APP的数量多了,难以一下子找到想要使用的APP时,那么使用搜索

wentianen的博客 1037

ETAS工具导入DBC生成Com协议栈

ETAS工具导入DBC主要也是生成arxml用的,ETAS推荐使用Cobra导入,本文介绍导入过程及注意事项不管是导入DBC还是arxml,本质上都是为了生成对应的com协议栈,目的是为了减少重复的工作量,所以,前期定义好收发的矩阵很重要,一般导入一次之后,后面就可以按变更点手动更改了。

赞的博客 1712

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

iOS内存扫描工具实现

由于不能告诉你的原因,我需要一个iOS下的,可以在指定App的内存中搜索字符串的工具。 找了一圈,发现一个比较接近的开源项目:rxmemscan,但是不支持搜索字符串,遂修改学习了一番。

Mz 7716

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

ios SearchBar

在移动应用程序的世界里,用户对信息获取的速度要求非常高! iOS用户希望他们需要的信息能够迅速地,直观地展现在他们面前。 因为UITableView的上下滚动能让用户迅速,自然地浏览大量信息,许多基于UIKit的应用都使用了UITableView来组织信息。但如果信息量非常非常大,让用户上下滚动如此长的列表是非常没有效率的。所以一个搜索的功能就是必须的了。 幸运的是,UIKit里有一个叫...

weixin_30482181的博客 131

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

如何用 React Native 创建一个iOS APP?(三)

前两部分,《如何用 React Native 创建一个iOS APP?》,《如何用 React Native 创建一个iOS APP (二)?》中,我们分别讲了用 React Native 来创建 Navigation Bar,Tab Bar 等这些控件,今天在第三节,我们着重讲一下剩下的一些控件。闲话少叙,我们直入主题!添加一个ListViewReact Native 有一个叫做 ListView

wangpeng198688的专栏 861

基于XCode IOS开发系统实现的新闻APP设计

图2-5 项目目录关于登录界面部分,UserViewController定义了偏好设置,登陆界面控件的功能以及登录功能。关于新闻浏览部分,NewsManager定义了新闻的基本属性,图片、网址、日期、标题,NewsDAL则定义了利用sql对新闻的一些操作,例如加载新闻,查找新闻,统计信息总数等等,BrowseNewsTableViewController是新闻浏览新页面的代码文件,NewsCell是定义了每一行新闻自己的信息,例如图片、标题、日期的位置。

毕业作品网站 1608

【官方回复】在安卓、iOS中从app内通过androidamap://等协议唤醒手机上的高德地图app进行导航,高德平台会收费吗?高德地图URI API调用(安卓、ios端)是否免费 - 商用5W一年

工单描述: 安卓、iOS中从app内通过androidamap://跳转到外部高德地图app,高德平台会收费吗?1.在APP内部使用高德SDK展示地图、计算路程等需要收费,是明确的。2.在安卓、iOS中从app内通过androidamap://等协议唤醒手机上的高德地图app进行导航,高德平台会收费吗?您好,高德开放平台很高兴为您服务,安卓和iOS已封装的基础服务是不限制配额的,您可以放心使用。1)APP内使用高德地图SDK进行导航、规划是需要商用收费的,5w每年;您的满意是我们永远的追求。...

Rudon滨海渔村的博客 4266
上一篇: iOS 之 跳转到新页面 2个页面间跳转和数据传递
下一篇: iOS 之调试 和 程序打包 发布
aassddff261
博客等级 码龄15年 9粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值