`
百合不是茶
  • 浏览: 355864 次
社区版块
存档分类
最新评论

对话框和table的使用

阅读更多

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

 

 

 

0
2
分享到:
评论

相关推荐

    libgdx 游戏对话框

    - 添加进入和退出动画,例如淡入淡出,滑动效果等,使对话框的出现和消失更自然。 - 添加点击事件监听器,处理玩家与对话框的交互,比如关闭对话框或者选择选项。 - 可以使用`TimeController`(如`TweenEngine`)...

    vc++曲线图绘制和动态html对话框和定制button

    2、使用CHTMLDialog,显示Html页,且能实现HTML动态显示,交互,可以使用C++和javascript互相调用。 3、ADO读取数据库(access),生成HTML,table表格,在CHTMLDialog中显示(目的是HTML的table表格代替MFC的...

    MFC中子对话框的大小跟随主对话框大小进行缩放

    包含一个主对话框和两个子对话框(在Tab控件中显示)。常用的MFC控件(包括字体、BMP控件)都可以进行缩放,子对话框的控件也可跟随主对话框大小缩放。单个对话框也适用。界面的控件ID循环查找存入数组中(这样界面...

    VS2013 MFC Table Control 创建和使用

    Table Control 控件作为MFC中的一个重要组成部分,常被用于展示表格数据,其创建和使用方法对于初学者来说尤为重要。 #### 二、创建MFC项目 1. **打开VS2013**:启动Visual Studio 2013。 - 文件 -> 新建 -> 项目 ...

    静态Html、jsp、php等使用element ui最简单直观例子(含table/对话框服及js/css等)

    - **Dialog**:对话框组件用于显示弹出窗口,常用于表单提交、确认操作等场景,具有可定制化的标题、内容和操作按钮。 2. **HTML 示例** 在 `test.html` 和 `test2.html` 文件中,你可以看到如何在 HTML 页面中...

    Qt中各种对话框的应用实例

    本文档通过11个实用案例详细介绍了Qt中对话框的应用实例,包括了对话框的基础使用、信号与槽机制、各种对话框的使用方法以及QtDesigner的使用等。通过这些案例的学习,读者不仅可以了解Qt对话框的基本用法,还能掌握...

    Qt对话框美化(含TableWidget)

    本主题将深入探讨如何美化Qt对话框,特别是涉及QTableWidget的使用以及按钮的美化。QTableWidget是Qt的容器控件,用于显示二维表格数据,它允许用户编辑、添加和删除数据,使得在对话框中展示复杂信息变得更加直观。...

    jquery-confirm | 功能强大的jQuery对话框和确认框插件

    `jquery-confirm` 是一个强大的jQuery插件,专为对话框和确认框设计,它极大地扩展了传统的JavaScript alert、confirm和prompt功能。这款插件旨在为网页应用提供美观、灵活且功能丰富的提示对话框,让用户交互体验...

    一个 JS 写的 Table 自增/减行例子,和一个模态对话框传值例子的源代码

    博客《一个 JS 写的 Table 自增/减行例子,和一个模态对话框传值例子的源代码》一文的示例完整源代码。博客地址:http://blog.csdn.net/defonds/archive/2010/04/21/5512015.aspx。

    Android开发用SQLite增删改查及自定义对话框

    在Android应用开发中,SQLite是一个重要的组成部分,它是一个轻量级的数据库系统,适用于存储应用...总之,掌握SQLite数据库和自定义对话框的使用是Android开发中的基础技能,能有效提高应用的用户体验和数据管理效率。

    bootstrap table editable js

    Bootstrap Table Editable JS 是一个基于Bootstrap框架的动态表格插件,它允许用户在表格的单元格内进行编辑,提供了一种交互式的数据展示和管理方式。这个压缩包包含以下三个核心文件: 1. **bootstrap-editable....

    bootstrapTable编辑表格例子.zip

    在实际项目中,你可以根据需要自定义编辑和删除操作的UI和逻辑,例如添加确认对话框、处理服务器端的异步操作等。 总的来说,"bootstrapTable编辑表格例子.zip"这个压缩包提供了一个很好的学习资源,帮助开发者理解...

    xptable帮助文档

    通过监听和处理这些事件,开发者可以实现丰富的交互逻辑,如弹出对话框、更新数据源、执行计算等。 此外,**表格模型(TableModel)**是XPTable的灵魂,它负责存储和管理表格的数据。开发者可以自定义TableModel来...

    el-table无限滚动+控制列是否显示+列排序(非json)

    同时,确保在`el-table`中使用`v-if`指令来决定列是否渲染。 至于**列排序**,在`el-table`中,可以使用`sortable`属性来指定列是否可排序,而`sort-method`则用于自定义排序逻辑。默认情况下,`el-table`支持对...

    jquery 导出excel tableExport

    要使用 tableExport,首先确保在项目中引入了 jQuery 和 tableExport 的 JavaScript 文件,如 `tableExport.js`。接下来,需要对要导出的表格添加特定的类或属性以标识它们。例如,可以给表格添加一个 class 名为 ...

    tableeditor

    运行TableEditor.exe,通过连接对话框输入服务器名、数据库名、用户名和密码,即可开始使用。注意,由于TableEditor是针对较旧版本的SQL Server,对于更高版本的数据库系统,可能需要寻找其他兼容的工具。 总的来说...

    STEP_7如何导入和导出在_Excel_中编辑的_Symbol_Table.pdf

    ### 如何在STEP 7中导入和导出Excel编辑的Symbol Table #### 一、引言 在工业自动化领域,STEP 7(SIMATIC Technology Entry Package)是西门子为S7系列PLC编程开发的一款强大工具。在复杂的工程项目中,经常需要对...

    MFC Table控件例程

    本文将详细讲解如何在MFC应用程序中实现Table控件的使用,以帮助开发者更好地理解和操作此类控件。 首先,MFC中的Table控件通常是指CListCtrl类,它继承自CWnd类,提供了类似Windows资源管理器中文件列表的界面。...

    SAPDialog开发教程之TableControl开发.docx

    SAP Dialog开发教程之TableControl开发主要涵盖了在SAP ABAP环境中如何创建和操作Table Control,这是一种在对话框程序中显示和编辑数据的屏幕元素。Table Control通常用于报表程序和模块池程序,允许用户查看和可能...

    vc的对话框设计中控件调整布局

    在VC++中,我们通常使用资源编辑器(Resource Editor)来创建和编辑对话框。打开资源编辑器后,你可以通过“插入”菜单添加新的控件,如按钮、文本框等。每个控件都有自己的属性,包括位置、大小、字体、颜色等,...

Global site tag (gtag.js) - Google Analytics