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:@
"请输入用户名和密码" delegate:Self 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;