iOS(四)动漫App:六

iOS(四)动漫App:六_第1张图片

searchController控制器并没有什么内容,直接实例化了SearchBar

在SearchBar里除了用到了一个UISearchBar,其它还是之前的内容,tableView和TableViewCell,php脚本,xml解析,所以这次重点讲讲UISearchBar

searchBar实例化

-(void)createView{
    _searchBar=[[UISearchBar alloc]initWithFrame:CGRectMake(0, 20, self.frame.size.width, 50)];

    _searchBar.barStyle=UIBarStyleDefault;
    _searchBar.keyboardType=UIKeyboardTypeDefault;
    _searchBar.delegate=self;
    [self addSubview:_searchBar];
    
    _tableView=[[UITableView alloc]initWithFrame:CGRectMake(0, 70, self.frame.size.width, self.frame.size.height-100)];
    _tableView.dataSource =self;
    _tableView.delegate=self;
    [self addSubview:_tableView];
    
    
}

接下来是UISearchBar的代理

//UISerachBar的代理!!!!
//点击搜索框事件:
-(void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar{
    [searchBar setShowsCancelButton:YES animated:YES];
    [searchBar becomeFirstResponder];
    self.tableView.allowsSelection=NO;
    self.tableView.scrollEnabled=NO;
}
//添加Cancel事件:
-(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{
    searchBar.text=@"";
    [searchBar setShowsCancelButton:NO animated:YES];
    [searchBar resignFirstResponder];
    self.tableView.allowsSelection=YES;
    self.tableView.scrollEnabled=YES;
}
//点击Search按钮事件:
-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
    
    [searchBar setShowsCancelButton:NO animated:YES];
    [searchBar resignFirstResponder];
    self.tableView.allowsSelection=YES;
    self.tableView.scrollEnabled=YES;
    [self Search_text:searchBar.text];
}



<span style="font-size:14px;">//读取输入框的内容,并进行搜索
-(void)Search_text:(NSString *)string{
    NSString *BasestringUrl=@"http://ashuai.6655.la/SearchBar.php?data";
    NSString *Url=[NSString stringWithFormat:@"%@=%@",BasestringUrl,string];
    NSLog(@"%@",Url);
    [self xml_data:Url];//解析Url获取xml数据,再解析xml数据
}</span>



<span style="font-size:14px;">//解析Url获取xml数据
-(void)xml_data:(NSString *)URL{
    
    NSString *url;
    url = [URL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];//编码转换!!
    NSLog(@"%@",url);
    [AFNetworkTool xmlRequestWithUrl:url success:^(NSXMLParser *xmlParser) {
        self.xmldata=[NSMutableDictionary dictionary];
        xmlParser.delegate = self;
        [xmlParser setShouldProcessNamespaces:YES];
        [xmlParser parse];
        NSLog(@"chenggong");
    } fail:^{
        NSLog(@"xml fail");
        UIAlertView *warn=[[UIAlertView alloc]initWithTitle:@"Error!" message:@"网络链接失败!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [warn show];
    }];
    
}

</span>

根据输入的文本,用sql语句进行模糊查询

<?php  

include("xml/sql_dll.php");
$dll=new sql_dll();
if($_GET['data']){
	$comic_data=$dll->select_comic($_GET['data']); 
    foreach($comic_data as $echo_comic_data){  
        $return .="<comic>  
                        <video_name>
							<value>$echo_comic_data[0]</value>
						</video_name>
						<video_image>
							<value>$echo_comic_data[1]</value>
						</video_image>
						<video_intro>
							<value>$echo_comic_data[2]</value>
						</video_intro>
						<video_url>
							<value>$echo_comic_data[3]</value>
						</video_url> 
                  </comic>";  
    }    
	header("Content-type:text/xml"); 
	echo '<?xml version="1.0" encoding="UTF-8"?>
	<data>
	'.$return.'
	</data>';
	exit;

}
else
{
	print("no data");
}
?> 

function select_comic($a) //根据name或者intro进行模糊查询
 
 {
	$sql="select * from `comic` where `name` LIKE '%$a%' or `intro` LIKE '%$a%'";				
	return $this->Search($sql);	  
 }	


暂时动漫App就到这里了,回过头看看自己写的东西,觉得的确有很多欠缺的地方,写文章还是差,

总结,1,xml解析这一块实在是写的太臃肿了,用json数据在Afnetworking的方法中就能方便的获取数据,不需要再使用xml解析的代理,

   2,关于动漫和动画的tableview,没有上拉刷新or下拉刷新的功能

   3,页面约束也是很遗憾,应该用一下比较流行的masony框架

   4,比较欣慰的是自己写了几个控件(自定义的tabbar,图片循环播放,虽然不如第三方框架),和一个图片下载的方法(虽然不如SDwebimage)

你可能感兴趣的:(iOS(四)动漫App:六)