IOS复习Word下载.docx
《IOS复习Word下载.docx》由会员分享,可在线阅读,更多相关《IOS复习Word下载.docx(27页珍藏版)》请在冰豆网上搜索。
self.myproview.progress=self.myproview.progress+0.1f;
if(self.myproview.progress>
=1.0){
[self.mytimerinvalidate];
//停止定时器
//将按钮的标题改为重新下载,同时将进度条归零
[self.btndownsetTitle:
@"
重新下载"
forState:
NO];
self.myproview.progress=0.0f;
//弹出对话框提示成功
UIAlertView*alert=[[UIAlertViewalloc]initWithTitle:
下载提示"
message:
下载完成"
delegate:
selfcancelButtonTitle:
确定"
otherButtonTitles:
nil,nil];
[alertshow];
}
}
7.定时器(NSTimer)
if(self.mytimer!
=nil&
&
self.mytimer.isValid){//暂停,要么是继续
NSString*btntilte=self.btndown.titleLabel.text;
if([btntilteisEqualToString:
暂停"
]){
//暂停定时器
[self.mytimersetFireDate:
[NSDatedistantFuture]];
//设置按钮值
继续"
forState:
}else{
//继续定时器
[NSDatedate]];
//继续
}
//定义并启动定时器
self.mytimer=[NSTimerscheduledTimerWithTimeInterval:
1.0target:
selfselector:
@selector(download)userInfo:
nilrepeats:
YES];
8.状态指示器(UIActivityIndicatorView)
1.获得指示器当前的状态BOOLstate=self.myactivity.isAnimating;
2.设置指示器停止或开始stopAnimating;
startAnimating;
9.警告框(UIAlertView)
协议:
UIAlertViewDelegate
UIAlertView*alert=[[UIAlertViewalloc]initWithTitle:
提示框"
//对话框标题
message:
这是一个警告框"
//弹出信息
delegate:
self//委托
cancelButtonTitle:
取消"
//取消按钮的标题
otherButtonTitles:
//其他按钮的标题nil];
//显示对话框
10.Web视图(UIWebView)
NSURL
*url=[NSURLURLWithString:
.hk"
];
NSURLRequest
*request=[[NSURLRequestalloc]
initWithURL:
url];
[myWebView
loadRequest:
request];
11.动作表单(UIActionSheet)
协议:
UIActionSheetDelegate
UIActionSheet*sheet=[[UIActionSheetalloc]initWithTitle:
nildelegate:
self
取消分享"
destructiveButtonTitle:
分享到QQ空间"
o
therButtonTitles:
分享到新浪微博"
@"
twitter"
@"
facebook"
nil];
[sheetshowInView:
self.view];
//获取被选中菜单的索引
-(void)alertView:
(UIAlertView*)alertViewclickedButtonAtIndex:
(NSInteger)buttonIndex{
NSLog(@"
%d"
buttonIndex);
}
12.日期选择器(UIDatePicker)
NSDate*mydate=self.mydatepicker.date;
//获取datepicker控件时间值
NSDateFormatter*dfm=[[NSDateFormatteralloc]init];
[dfmsetDateFormat:
YYYY-MM-ddHH:
mm:
ss"
//格式时间
NSString*datestr=[dfmstringFromDate:
mydate];
13.自定义选择器(UIPickerView)
数据源UIPickerViewDataSource,委托UIPickerViewDelegate
1.定义接受数据源的变量
NSDictionary*mydata//全部数据;
NSArray*provinces;
//省数据
NSArray*city;
//市数据
2.接受数据源
NSBundle*bundle=[NSBundlemainBundle];
//从plist文件中读取所有数据
NSString*pathList=[bundlepathForResource:
xxx"
ofType:
plist"
//获得文件名
self.mydata=[[NSDictionaryalloc]initWithContentsOfFile:
pathList];
//读数据
self.provinces=[self.mydataallKeys];
//获得省
self.city=[self.mydataobjectForKey:
provinceName];
//市
//默认初始值去第一个省的所有市
NSString*provinceName=[self.provincesobjectAtIndex:
0];
//1.获得省名称
//绑定数据源及委托
self.myPickerView.dataSource=self;
self.myPickerView.delegate=self;
3.//返回某一个拨轮中有多少个值
-(NSInteger)pickerView:
(UIPickerView*)pickerViewnumberOfRowsInComponent:
(NSInteger)component{
if(component==0){
return[self.provincescount];
}else{
return[self.citycount];
4.//返回当前picker共有几个拨轮
-(NSInteger)numberOfComponentsInPickerView:
(UIPickerView*)pickerView{
return2;
5.//显示某一个拨轮中row标题
-(NSString*)pickerView:
(UIPickerView*)pickerViewtitleForRow:
(NSInteger)rowforComponent:
if(component==0){
return[self.pDataobjectAtIndex:
row];
return[self.cDataobjectAtIndex:
6.//选中的拨轮行
-(void)pickerView:
(UIPickerView*)pickerViewdidSelectRow:
(NSInteger)rowinComponent:
NSString*p=[self.pDataobjectAtIndex:
NSArray*arr=[self.plistDataobjectForKey:
p];
self.cData=arr;
[self.myPickerViewreloadComponent:
1];
二、表视图
一.表视图分类
1.形式上分类
1.1动态表视图(重点)
1.2静态表视图(孤岛式视图)
分析:
静态表视图一般用于设计和规划页面
动态表视图常用于数据显示
2.从控件分类
2.1UITableView(基本视图控件)
2.2UITableViewController(基本视图控件+标准类)
注意:
如果使用2.1则,需要显示实现委托(UITableViewDelegate)以及数据源(UITableviewDataSource)
如果使用2.2则,需要生成一个集成UITableViewController的类,同时将视图中的Table指向该类
3.从功能分类
3.1简单表视图(只有一个节)
3.2复杂表视图(多个节以及节标题,节索引等等)
3.3自定义CELL表视图
二.表视图结构
1.表视图基本结构
1.1节1.2节标题1.3表标题1.4表尾1.5单元格(Cell)/行
1.一个表视图至少有一个节2.一个节有多个Cell
2.单元格结构/行
1.图标(image)2.正文区(正文标题,正文,正文尾)3.扩展区
三.表视图中委托以及数据源
需要重写的方法:
1).选中某一行的操作,详解表格复选框(checked)
-(void)tableView:
(UITableView*)tableViewdidSelectRowAtIndexPath:
(NSIndexPath*)indexPath;
2).某一单元格编辑样式,详见可编辑表视图
-(UITableViewCellEditingStyle)tableView:
(UITableView*)tableVieweditingStyleForRowAtIndexPath:
删除样式:
UITableViewCellEditingStyleDelete
添加样式:
UITableViewCellEditingStyleInsert
3).当前表视图有多少节
-(NSInteger)numberOfSections;
4).当前节有多少行
-(NSInteger)numberOfRowsInSection:
(NSInteger)section;
5).添加节
-(void)insertSections:
(NSIndexSet*)sectionswithRowAnimation:
(UITableViewRowAnimation)animation;
6).删除节
-(void)deleteSections:
7).添加行,详解可编辑表视图
-(void)insertRowsAtIndexPaths:
(NSArray*)indexPathswithRowAnimation:
8).删除行,详见可编辑表视图
-(void)deleteRowsAtIndexPaths:
9).设置表视图可编辑,详见可编辑表视图
-(void)setEditing:
(BOOL)editinganimated:
(BOOL)animated;
10).返回所有Cell
-(UITableViewCell*)tableView:
(UITableView*)tableViewcellForRowAtIndexPath:
11).当前节返回多少行
-(NSInteger)tableView:
(UITableView*)tableViewnumberOfRowsInSection:
12).返回索引列,详见有索引的表视图
-(NSArray*)sectionIndexTitlesForTableView:
(UITableView*)tableView;
规格化字符串:
[[NSStringalloc]initWithFormat:
myvalue];
设置控件的隐藏显示:
self.leftswitch.hidden=NO;
设置button按钮的显示:
[self.btndownsetTitle:
视图控制器与导航
视图控制器分类
•UIViewController(自定义视图控制器的导航)
•UINaviagtionController(导航控制器)
•UITabBarController(标签控制器)
•UIPageViewController(电⼦子书导航风格)
•UISplitViewController(分屏导航--ipad)
•UIPopoverController(⽓气泡风格)
导航模式
•平铺导航模式(照片产品展示)
•标签导航模式(多配合树形使用,分类别数据显示)
•树形结构导航模式(常用作数据显示)
•模态视图(特殊)(常见用作登录注册页面之间的转换)
模态:
主要⽅方法
(显示模态视图)presentViewController:
animated:
completion
(关闭模态视图)dismissViewControllerAnimated:
completion
模态样式分类
UIModalTransitionStyleCoverVertical(从底向
上模式)
UIModalTransitionStyleFlipHorizontal.(从右往左水平翻转)
UIModalTransitionStyleCrossDissolve.(淡入淡出)
UIModalTransitionStylePartialCurl.(卷起一个边角翻页)
模态视图参数回传(广播模式)开发步骤
1.定义NSDictionary(广播数据封装)
2.定义⼴广播对象
[[NSNotificationCenter
default]postNotificationName:
Object:
userInfo];
3.定义接受⼴广播⽅方法
4.定义⼴广播监听
2.广播和模态视图
(1)-(void)viewDidLoad
{
[superviewDidLoad];
//添加广播监听
[[NSNotificationCenterdefaultCenter]addObserver:
@selector(getNotification:
)name:
registerok"
object:
nil];
//定义接受广播的方法
-(void)getNotification:
(NSNotification*)notification{
NSDictionary*mydata=[notificationuserInfo];
NSString*uname=[mydataobjectForKey:
uname"
用户注册的用户名为:
%@"
uname);
-(IBAction)onClickRegister:
(id)sender{
//获得故事模板对象
UIStoryboard*mainStoryboard=[UIStoryboardstoryboardWithName:
Main"
bundle:
//通过故事模板对象获得控制视图
UIViewController*registerViewController=[mainStoryboardinstantiateViewControllerWithIdentifier:
registerViewController"
//设计模态显示样式
self.modalTransitionStyle=UIModalTransitionStyleCoverVertical;
//开始调用
[selfpresentViewController:
registerViewControlleranimated:
YEScompletion:
^{
开始调用下一个视图"
);
}];
(2点击注册OK,后将本视图中的填写的用户名回传给上一个视图,采取广播设计模式
-(IBAction)onClickOK:
[selfdismissViewControllerAnimated:
YEScompletion:
关闭视图的同时将数据回传"
//定义广播数据,其类型为NSDisdictionary
NSDictionary*dictData=[NSDictionarydictionaryWithObject:
self.uNameText.textforKey:
//定义广播
[[NSNotificationCenterdefaultCenter]postNotificationName:
//广播名称object:
niluserInfo:
dictData];
}];
-(IBAction)onClickCancel:
//取消模态视图
取消模态视图!
"
平铺
1.UIPageViewController实现平铺
UIPageViewControllerDataSource
步骤:
1)拖拽PageViewController,修改StoryboardID,设置TransitionStyle为Scroll
2)拖拽新的viewController,修改StoryboardID,添加imageView,指定新的类
3)代码实在太多自己看去吧:
代码文件名pageViewControllerDemo
2.ScrollView实现平铺
UIScrollViewDelegate
1)拖拽ScrollView及PageControl,生成IBOutlet
2)拖拽出多个ViewController,修改StoryboardID,添加imageView
3)在Scroll的类中定义多个UIView以对应多个ViewController
4)代码实现:
-(void)viewDidLoad
{[superviewDidLoad];
//初始化各个参数,首先初始化滚屏的宽度和高度,注意宽度设置为3个屏幕的宽度self.scrollView.contentSize=CGSizeMake(self.view.frame.size.width*3,self.view.frame.size.height);
self.scrollView.frame=self.view.frame;
//获得故事模板对象
UIStoryboard*mainStoryboard=[UIStoryboardstoryboardWithName:
bundle:
//获得第一个视图控制对象
UIViewController*page1ViewController=[mainStoryboardinstantiateViewControllerWithIdentifier:
page1"
self.page1=page1Vie