zoukankan      html  css  js  c++  java
  • IOS之UIKit_Day03

    DAY03

    复习:

    1 IB:界面设置(xib文件)

    2 IBOutLet(属性 输出口)  IBAction(事件返回值)

    3 UIStepper 步径控件 常用属性 Value  事件ValueChange

      UISilder快速滑动产生一个可变化的值 常用属性 Value 常用事件:VlaueChang

      UISwith开关控件 属性.ON(BOOL)事件 ValueChange

    4 UITeXFiled 单行文本框

           属性:.text .......

           事件:Did End ON Exit

           键盘的弹出: why文本框成为了第一响应者

           关闭键盘:

                  [textFile resginFirstResponder]放弃第一响应者身份

                  [textFile becomeFirstResponder]让其他控件成为第一响应者

                  [self.view endEditing:yes]让视图结束编辑

           关闭键盘的时机:

                  点击键盘右下角[Did End On Exit]

                  重写控制器的TouchesBegan....WithEven...方法

    ---------------------------------------------------------------------------------------------------------------

    1 UIAlertView警告框

           1.1 选择时机点 创建

                  a>创建警告框

                  UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"登陆" message:@

    "请输入用户名和密码" delegate:nil cancelButtonTitle:@"OK" otherButtonTitle:nil];

                  b>设置样式

                  alert.alertViewStyle=UIAlertViewStyleLoginAndPasswordInput;

                  c>设置显示[alert show];

                 

                  alertViewStyle的属性:

                         UIAlertViewStyleDefault=0//默认不带输入框

                         UIAlertViewStyleSecureTextInput密码输入框

                         UIAlertViewStylePlainTextInput普通输入框

                         UIAlertViewStyleLoginAndPasswordInput登陆框

                  1.2如何获取用户在警告框中的选项-----委托

                         1.2.1 委托是什么?

                                一个对象A让一个对象B帮助他做事情(发消息)

                                步骤:

                                1》指明代理对象 《自己为代理对象》

                         UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"登陆" message:@

    "请输入用户名和密码" delegateSelf cancelButtonTitle:@"OK" otherButtonTitle:nil];

                                2》遵守协议<UIAlertVDelegate>

                                3》实现方法:

                  -(void)alertView:(UIAlertView*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex;//单击了按钮之后

             - (void)alertViewCancel:(UIAlertView *)alertView;//alertView销毁时

             - (void)willPresentAlertView:(UIAlertView *)alertView; //将要出现alertView

             - (void)didPresentAlertView:(UIAlertView *)alertView; //出现完成 alertView

             -(void)alertView:(UIAlertView*)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex;

             -(void)alertView:(UIAlertView*)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex;

            - (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView;

                         1.2.2 获取点击按钮的操作

                                根据点击按钮的索引获取点击按钮的标题

                         -(void)alertView:(UIAlertView*)alertView ClickedButtonAtIndex:(NSInteger)buttonIndex;方法中的第二个参数是点击按钮的索引,意义根据一下方法进行判断:

                                NSString *title=[alertView buttonTitleAtIndex:buttonIndex]获取按钮上的文字

                                1》通过判断标题来判断不同的动作 title isEqualToString:@"YES"

                                2》通过点击cancel的值判断 alertView.cancelButtonIndex==buttonIndex

                                3》直接通过索引进行判断

                         1.2.3 获取弹窗输入的文本内容

                                当点击YES按钮时在控制台上打印用户名

                                if(alertView.cancelButtonIndex==butonIndex){

                                Nsstring *username=[alertView textFiledAtIndex:0].text; //  获取用户名

                                Nsstring *password=[alertView textFiledAtIndex:1].text;     //获取密码

                                NSLog(@"用户名:%@ 密码%@",usernam,password);

                                }

           2 UIACtionSheet(从屏幕下方弹出的按钮)

                  2.1 创建

                         1》创建实例

                                UIActionSheet *sheet=[[UIActionSheet alloc]initWithTitle:@"操作表" delegate:self cancelButtonTitle:@"cance" destructiveButtonTitle:@"destruct" otherButtonTitles:@"微博",@"微信",@"朋友圈",nil];

                         2》显示

                                [sheet showInView:self.view];

                  2.2 区分按钮

                         遵守协议<UIActionSheetDelegate>

                         实现方法

                         //区分点击按钮

                           NSLog(@"%d",buttonIndex);

                                    //判断按钮标题

                                  NSString *title= [actionSheet buttonTitleAtIndex:buttonIndex];

                                 NSLog(@"%@",title);

                                 if (actionSheet.cancelButtonIndex==buttonIndex) {

                               //单击了cancel

                                      }

                                        if (actionSheet.destructiveButtonIndex==buttonIndex) {

                                   //单击了有破坏性的那个危害按钮

                               }

     

    3 MVC(Model 模型  View 视图 Controller 控制器)

           3.1什么是设计模式

                  对于某一类具体问题 总结出来的一套最优的解决方案

           3.2 优点

                  结构清晰 可以重用 方便维护 耦合度低

           3.3 MCV设计模式

                  Model 模型:数据存储 程序的业务逻辑 多线程 网络传输 文件存储

                  View 视图 :视图搭建

                  Controller控制器:搭建起了M与V的连接

     4 MVC经典案例:纸牌对对碰

           里程碑1:能够随机产生12张扑克牌 并且在屏幕上显示随机产生的12张扑克变牌

           里程碑2:根据选中的按钮位置 进行对比然后改变数据模型 改变之后传给控制器负责将改变后的数据更新到界面中

           里程碑3:第二次点击的扑克牌 与第一次点击的扑克牌对比 如果颜色形同同时翻开 如果大小相同同时翻开  否则第一次翻开的扑克牌翻回

           开发细则:

           Class Card

                         suit//定义花色

                         rank//定义牌的面值

                         cardInfo//一张扑克牌的信息

                         faceUp//标记是否翻开

                         matched//标记是否可以再次点击

                         +(NSArray*)allSuit//定义所有的花色

                         +(NSArray*)allRank//定义所有的面值

                         -(id)initWithSuit:(NSString *)suit AndRank:(NSString*)rank//初始化

                         -(NSString*)cardInfo//初始化

                         -(void)setSuit:(NSString*)suit//重定义set方法

                         -(void)setRank:(NSString*)rank//重定义set方法

           class Pocker

                  allCards;

                         -(NSMutableArray *)allCards;

                         -(id)init;

           Class Game

               randomCards;//随机牌数

                         score;//得分

                         -(instancetype)initWinthCountCard:(NSInteger)count  AndinPoker:(Pocker*)poker;

                       -(void)chooseCardAtIndex:(NSUInteger)index;//选择的扑克牌

                         -(NSMutableArray *)randomCards//产生扑克牌

    Conterllor:

                game;游戏规则

                  poker;一副扑克

                  buttons;

  • 相关阅读:
    HDU-3081 Marriage Match II (最大流,二分答案,并查集)
    HDU-3605 Escape(最大流,状态压缩)
    HDU-3338 Kakuro Extension(最大流,方格横纵和问题)
    HDU-2732 Leapin' Lizards
    UVA-10480 Sabotage(最小割,割边方案)
    ajaxfileupload.js无刷新异步上传图片截取头像Demo
    未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService...与visualsvn initialization failed
    Python-数据库连表查询、子查询
    Python学习之数据库
    Python学习之表的数据类型
  • 原文地址:https://www.cnblogs.com/katydid/p/4278666.html
Copyright © 2011-2022 走看看