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
相关推荐
- 添加进入和退出动画,例如淡入淡出,滑动效果等,使对话框的出现和消失更自然。 - 添加点击事件监听器,处理玩家与对话框的交互,比如关闭对话框或者选择选项。 - 可以使用`TimeController`(如`TweenEngine`)...
2、使用CHTMLDialog,显示Html页,且能实现HTML动态显示,交互,可以使用C++和javascript互相调用。 3、ADO读取数据库(access),生成HTML,table表格,在CHTMLDialog中显示(目的是HTML的table表格代替MFC的...
包含一个主对话框和两个子对话框(在Tab控件中显示)。常用的MFC控件(包括字体、BMP控件)都可以进行缩放,子对话框的控件也可跟随主对话框大小缩放。单个对话框也适用。界面的控件ID循环查找存入数组中(这样界面...
Table Control 控件作为MFC中的一个重要组成部分,常被用于展示表格数据,其创建和使用方法对于初学者来说尤为重要。 #### 二、创建MFC项目 1. **打开VS2013**:启动Visual Studio 2013。 - 文件 -> 新建 -> 项目 ...
- **Dialog**:对话框组件用于显示弹出窗口,常用于表单提交、确认操作等场景,具有可定制化的标题、内容和操作按钮。 2. **HTML 示例** 在 `test.html` 和 `test2.html` 文件中,你可以看到如何在 HTML 页面中...
本文档通过11个实用案例详细介绍了Qt中对话框的应用实例,包括了对话框的基础使用、信号与槽机制、各种对话框的使用方法以及QtDesigner的使用等。通过这些案例的学习,读者不仅可以了解Qt对话框的基本用法,还能掌握...
本主题将深入探讨如何美化Qt对话框,特别是涉及QTableWidget的使用以及按钮的美化。QTableWidget是Qt的容器控件,用于显示二维表格数据,它允许用户编辑、添加和删除数据,使得在对话框中展示复杂信息变得更加直观。...
`jquery-confirm` 是一个强大的jQuery插件,专为对话框和确认框设计,它极大地扩展了传统的JavaScript alert、confirm和prompt功能。这款插件旨在为网页应用提供美观、灵活且功能丰富的提示对话框,让用户交互体验...
博客《一个 JS 写的 Table 自增/减行例子,和一个模态对话框传值例子的源代码》一文的示例完整源代码。博客地址:http://blog.csdn.net/defonds/archive/2010/04/21/5512015.aspx。
在Android应用开发中,SQLite是一个重要的组成部分,它是一个轻量级的数据库系统,适用于存储应用...总之,掌握SQLite数据库和自定义对话框的使用是Android开发中的基础技能,能有效提高应用的用户体验和数据管理效率。
Bootstrap Table Editable JS 是一个基于Bootstrap框架的动态表格插件,它允许用户在表格的单元格内进行编辑,提供了一种交互式的数据展示和管理方式。这个压缩包包含以下三个核心文件: 1. **bootstrap-editable....
在实际项目中,你可以根据需要自定义编辑和删除操作的UI和逻辑,例如添加确认对话框、处理服务器端的异步操作等。 总的来说,"bootstrapTable编辑表格例子.zip"这个压缩包提供了一个很好的学习资源,帮助开发者理解...
通过监听和处理这些事件,开发者可以实现丰富的交互逻辑,如弹出对话框、更新数据源、执行计算等。 此外,**表格模型(TableModel)**是XPTable的灵魂,它负责存储和管理表格的数据。开发者可以自定义TableModel来...
同时,确保在`el-table`中使用`v-if`指令来决定列是否渲染。 至于**列排序**,在`el-table`中,可以使用`sortable`属性来指定列是否可排序,而`sort-method`则用于自定义排序逻辑。默认情况下,`el-table`支持对...
要使用 tableExport,首先确保在项目中引入了 jQuery 和 tableExport 的 JavaScript 文件,如 `tableExport.js`。接下来,需要对要导出的表格添加特定的类或属性以标识它们。例如,可以给表格添加一个 class 名为 ...
运行TableEditor.exe,通过连接对话框输入服务器名、数据库名、用户名和密码,即可开始使用。注意,由于TableEditor是针对较旧版本的SQL Server,对于更高版本的数据库系统,可能需要寻找其他兼容的工具。 总的来说...
### 如何在STEP 7中导入和导出Excel编辑的Symbol Table #### 一、引言 在工业自动化领域,STEP 7(SIMATIC Technology Entry Package)是西门子为S7系列PLC编程开发的一款强大工具。在复杂的工程项目中,经常需要对...
本文将详细讲解如何在MFC应用程序中实现Table控件的使用,以帮助开发者更好地理解和操作此类控件。 首先,MFC中的Table控件通常是指CListCtrl类,它继承自CWnd类,提供了类似Windows资源管理器中文件列表的界面。...
SAP Dialog开发教程之TableControl开发主要涵盖了在SAP ABAP环境中如何创建和操作Table Control,这是一种在对话框程序中显示和编辑数据的屏幕元素。Table Control通常用于报表程序和模块池程序,允许用户查看和可能...
在VC++中,我们通常使用资源编辑器(Resource Editor)来创建和编辑对话框。打开资源编辑器后,你可以通过“插入”菜单添加新的控件,如按钮、文本框等。每个控件都有自己的属性,包括位置、大小、字体、颜色等,...