1,UICVIewControl的生命周期
-(void)viewWillAppear:(BOOL)animated{ //将要显示 NSLog(@"viewWillAppear...."); } -(void)viewDidAppear:(BOOL)animated{ NSLog(@"viewDidAppear..."); 显示完成 } -(void)viewWillDisappear:(BOOL)animated{ NSLog(@"viewWillDisappear..."); 将要关闭 } -(void)viewDidDisappear:(BOOL)animated{ NSLog(@"viewDidDisappear..");关闭完成 }
界面显示
2015-12-25 00:07:40.884 viewDemo[517:8149] viewWillAppear....
2015-12-25 00:07:40.927 viewDemo[517:8149] viewDidAppear...
跳转到下一个界面
2015-12-25 00:08:41.575 viewDemo[517:8149] viewWillDisappear...
2015-12-25 00:08:42.111 viewDemo[517:8149] viewDidDisappear..
2,对话框
UIAlertView方式创建
// 添加警告框 UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"确定删除" message:@"删除" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:@"no", nil]; UIActivityIndicatorView *act=[[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; [alert show]; [alert release];
UIalertControl创建对话框
NSString *title = NSLocalizedString(@"A Short Title Is Best", nil); NSString *message = NSLocalizedString(@"A message should be a short, complete sentence.", nil); NSString *cancelButtonTitle = NSLocalizedString(@"Cancel", nil); NSString *otherButtonTitle = NSLocalizedString(@"OK", nil); UIAlertController *alert=[UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert]; //设置Action UIAlertAction *actionleft=[UIAlertAction actionWithTitle:cancelButtonTitle style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { NSLog(@"点击了取消"); }]; UIAlertAction *actionright=[UIAlertAction actionWithTitle:otherButtonTitle style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { NSLog(@"点击了确定"); }]; //设置输入框 [alert addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) { textField.text=@"代号"; }]; [alert addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) { textField.text=@"姓名"; }]; //将事件添加到UIAlertController [alert addAction:actionleft]; [alert addAction:actionright]; // [self presentViewController:alert animated:1 completion:nil]; //释放对象 // [actionleft release]; // [actionright release]; // [alert release];
创建底部对话框
//创建对话款 UIAlertController *alert=[UIAlertController alertControllerWithTitle:@"保存成功" message:@"是否继续" preferredStyle:UIAlertControllerStyleActionSheet]; //添加按钮 [alert addAction:[UIAlertAction actionWithTitle:@"停留本页" style:UIAlertActionStyleCancel handler:nil]]; [alert addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) { }]]; //显示对话款 [self presentViewController:alert animated:YES completion:nil];
3,TableView
@interface TableViewController (){ UITableView *table; } @property(strong,nonatomic)NSMutableArray *arrayList1; //数据源 @property (strong,nonatomic)NSMutableArray *arrayTitle;//标题 @property(strong,nonatomic)NSMutableArray *arrayList2; @property(strong,nonatomic)NSDictionary *array; @end @implementation TableViewController @synthesize arrayList1; @synthesize arrayTitle; @synthesize arrayList2; @synthesize array; - (void)viewDidLoad { [super viewDidLoad]; // Uncomment the following line to preserve selection between presentations. // self.clearsSelectionOnViewWillAppear = NO; // Uncomment the following line to display an Edit button in the navigation bar for this view controller. self.navigationItem.rightBarButtonItem = self.editButtonItem; table=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 430, 600)]; self.view.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"cqe.jpg"]]; // table.dataSource=self; table.delegate=self; if (arrayList1==nil) { arrayList1 =[[NSMutableArray alloc]initWithObjects:@"美元/日元",@"美元/韩元",@"韩元/日元",@"港币/日元",@"美元/欧元",@"美元/英镑",@"美元/新加坡元",@"美元/澳元",@"美元/卢布",@"泰铢/日元",@"英镑/泰铢",@"新加坡元/澳门元",@"美元/港币",@"港币/台币",@"台币/越南盾",@"美元/韩元", nil]; arrayTitle=[[NSMutableArray alloc]initWithObjects:@"自选",@"交叉", nil]; arrayList2=[[NSMutableArray alloc]initWithObjects:@"美元/港币",@"韩元/日元", nil]; array=@{[arrayTitle objectAtIndex:0]:arrayList1, [arrayTitle objectAtIndex:1]:arrayList2}; } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } //设置标题 -(NSString*)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{ return [arrayTitle objectAtIndex:section]; } //设置尾部的标题 -(NSString*)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section{ return @"这是一个简单的使用"; } //设置头部的高度 -(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ return 20; } //设置底部的高度 -(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{ return 100; } //自定义头部View的样式 -(UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{ UIView *view = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 40)] autorelease]; [view setBackgroundColor:[UIColor brownColor]];//改变标题的颜色,也可用图片 UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(5, 5, 100, 40)]; label.textColor = [UIColor redColor]; label.backgroundColor = [UIColor clearColor]; label.text = [arrayTitle objectAtIndex:section]; [view addSubview:label]; return view; } //设置底部View样式 -(UIView*)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{ UIImageView * v1=[[UIImageView alloc]init]; v1.image=[UIImage imageNamed:@"bk.jpg"]; v1.frame=CGRectMake(0, 0, 320, 100); return v1; } #pragma mark - Table view data source //指定多少分区,根据arrayTitle计算 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { #warning Incomplete implementation, return the number of sections return [arrayTitle count]; } //设置数据 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { #warning Incomplete implementation, return the number of rows //1,根据当前点击的区域设置数据 switch (section) { case 0: return [arrayList1 count]; case 1: return [arrayList2 count]; default: break; } return 0; } //绘制数据 cellForRowAtINdexPath - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { // UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath]; static NSString * string = @"cell"; UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:string]; if(cell == nil) { cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:string]; } //根据分区操作 switch (indexPath.section) { case 0: [[cell textLabel] setText:[arrayList1 objectAtIndex:indexPath.row]]; break; case 1: [[cell textLabel] setText:[arrayList2 objectAtIndex:indexPath.row]]; break; default: break; } return cell; } // Override to support conditional editing of the table view. 滑动是否出现删除 - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { // Return NO if you do not want the specified item to be editable. return YES; } // Override to support editing the table view. - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { if (editingStyle == UITableViewCellEditingStyleDelete) { // Delete the row from the data source [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; } else if (editingStyle == UITableViewCellEditingStyleInsert) { // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view } } // Override to support rearranging the table view. - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath { } // Override to support conditional rearranging of the - (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath { // Return NO if you do not want the item to be re-orderable. return YES; } #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } //设置行缩进 -(NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath{ return 3; } //点击事件 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ [table deselectRowAtIndexPath:indexPath animated:1];//设置选中后颜色消失 //获得选中的cell // UITableViewCell *cell= [table cellForRowAtIndexPath:indexPath]; //// 添加警告框 // UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"确定删除" message:@"删除" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:@"no", nil]; // // UIActivityIndicatorView *act=[[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; // // [alert show]; // [alert release]; [self setAlertControlLrean]; } //右侧添加一个索引表 - (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{ return [self.array allKeys]; } //获得选中的行 -(NSIndexPath*)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath{ NSUInteger index=[indexPath row]; if (index==0) { return nil; } return indexPath; } //获得对话框的点击位置 -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ NSLog(@"%ld",buttonIndex); } //新对话框的使用 -(void)setAlertControlLrean{ NSString *title = NSLocalizedString(@"A Short Title Is Best", nil); NSString *message = NSLocalizedString(@"A message should be a short, complete sentence.", nil); NSString *cancelButtonTitle = NSLocalizedString(@"Cancel", nil); NSString *otherButtonTitle = NSLocalizedString(@"OK", nil); UIAlertController *alert=[UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert]; //设置Action UIAlertAction *actionleft=[UIAlertAction actionWithTitle:cancelButtonTitle style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { NSLog(@"点击了取消"); }]; UIAlertAction *actionright=[UIAlertAction actionWithTitle:otherButtonTitle style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { NSLog(@"点击了确定"); }]; //设置输入框 [alert addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) { textField.text=@"代号"; }]; [alert addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) { textField.text=@"姓名"; }]; //将事件添加到UIAlertController [alert addAction:actionleft]; [alert addAction:actionright]; // [self presentViewController:alert animated:1 completion:nil]; //释放对象 // [actionleft release]; // [actionright release]; // [alert release]; } @end