iOS开发小白学习体验-3
来源:互联网 发布:深圳淘宝推广招聘 编辑:程序博客网 时间:2024/05/20 18:50
当iOS程序触发某种条件的时候,跳出提示框
/** * 参数: * 1·标题 * 2·信息 * 3·代理 * 4·取消按钮 * 5·确定按钮 */UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"通知" message:@"恭喜通关了!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];[alert show];
UI基础复习
1> UIButton -> UIControl -> UIView
1.1 设置控件的状态
启用、禁用
@property(nonatomic,getter=isEnabled) BOOL enabled;
选中、不选中
@property(nonatomic,getter=isSelected) BOOL selected;
高亮或者不高亮
@property(nonatomic,getter=isHighlighted) BOOL highlighted;
1.2 设置控件内容的布局
垂直居中方向
@property(nonatomic) UIControlContentVerticalAlignment contentVerticalAlignment;
水平居中方向
@property(nonatomic) UIControlContentHorizontalAlignment contentHorizontalAlignment;
1.3 添加/删除监听方法
- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;
- (void)removeTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;
2> UILabel -> UIView
3> UIImageView -> UIView
4> UITextField -> UIControl
* 代理设计模式,在OC中,使用最为广泛的一种设计模式
1> 代理的用处是什么?
* 监听那些不能通过addTarget监听的事件!
* 主要用来负责在两个对象之间,发生某些事件时,来传递消息或者数据
2> 代理的实现步骤
(1) 成为(子)控件的代理,父亲(控制器)成为儿子(文本框)的代理
(2) 遵守协议->利用智能提示,快速编写代码
(3) 实现协议方法
// 将监听方法,注册到"运行循环",当按钮被点击后,"运行循环"通知视图控制器执行@selector的方法 [btn addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];
协议
协议的写法:
#import <Foundation/Foundation.h> @protocol WithProtocol <NSObject> //默认是必须实现的 //必须实现 @required - (void)finshTask; - (void)dontLate; //可选实现 @optional - (void)wearNeat; @end
协议的用法:直接让某个类遵守协议
#import "xxx.h"@interface xxx : NSObject <xxx.h>// 协议中有@optional标志的方法是可选实现的// 协议中有@required标志的方法是必须实现的@end
UIScrollView
contentSize 会根据边框调整offset
contentInset 不会调整offset
比如:
/** 1. 如果先设置间距,再设置内容,那么坐标的点是(0,64) 2. 如果先设置内容,再设置间距,那么坐标的点是(0,0) */ self.scrollView.contentInset = UIEdgeInsetsMake(64, 0 ,0, 0); CGFloat wight = self.scrollView.bounds.size.width; // 下面两个函数等价 CGFloat hight = CGRectGetMaxY(self.lastButton.frame)+10;// CGFloat hight = self.lastButton.bounds.size.height+self.lastButton.frame.origin.y; self.scrollView.contentSize = CGSizeMake(wight, hight); self.scrollView.bounces = YES;// self.scrollView.contentOffset = CGPointMake(0, -64);
- 实现大图小图的缩放:
// 加一个代理,需要遵循协议 self.scrollView.delegate = self;// 设置最大最小缩放比例 self.scrollView.maximumZoomScale = 2.0; self.scrollView.minimumZoomScale = 0.2;...// 写一个代理方法// 告诉ScrollView要缩放的是谁,具体的缩放实现是由ScrollView来完成的 - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{ return self.imageView;}// 滚动视图即将开始缩放,通常不需要实现 - (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view{}// 完成缩放,通常不需要实现 - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale{ NSLog(@"%s",__func__);}// 正在缩放,通常不需要实现 - (void)scrollViewDidZoom:(UIScrollView *)scrollView{ NSLog(@"%s",__func__);}
UIScrollView的属性总结
这里把UIScrollView的几个要点总结下:
从你的手指touch屏幕开始,scrollView开始一个timer,如果:
* 150ms内如果你的手指没有任何动作,消息就会传给subView。
* 150ms内手指有明显的滑动(一个swipe动作),scrollView就会滚动,消息不会传给subView,这里就是产生问题二的原因。
* 150ms内手指没有滑动,scrollView将消息传给subView,但是之后手指开始滑动,scrollView传送touchesCancelled消息给subView,然后开始滚动。
观察下tableView的情况,你先按住一个cell,cell开始高亮,手不要放开,开始滑动,tableView开始滚动,高亮取消。
* delaysContentTouches的作用:
* 这个标志默认是YES,使用上面的150ms的timer,如果设置为NO,touch事件立即传递给subView,不会有150ms的等待。
* cancelsTouches的作用:
* 这个标准默认为YES,如果设置为NO,这消息一旦传递给subView,这scroll事件不会再发生。
UIScrollView的属性总结
- NSTimer
开始一个时钟
/** * 参数说明: * 1· 时间间隔 * 2· 监听时钟触发的对象 * 3· 调用方法 * 4· userinfo,可以是任意对象,通常传递nil * 5· repeat:是否重复 */[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateTimer:) userInfo:@"hello timer" repeats:YES]
停止一个时钟
- (IBAction)pause{ // 停止时钟,invalidate是唯一停止时钟的方法 // 一旦调用了 invalidate 方法,timer就无效了,如果再次启动时钟,需要重新实例化 [self.timer invalidate];}
- iOS开发小白学习体验-3
- iOS开发小白学习体验-4
- iOS开发小白学习体验-5
- iOS开发小白学习体验-6
- iOS开发小白学习体验-8
- iOS开发小白学习体验-9
- iOS开发小白学习体验-10
- iOS开发小白学习体验-11
- iOS开发小白学习体验-UIWebView
- iOS开发小白学习体验-7-网络请求
- iOS开发小白学习体验-UICollectionView(一)
- iOS开发小白学习体验-CALayer的一些整理
- IOS开发学习体验
- iOS学习笔记65-3D Touch开发初体验
- php开发小白上手体验
- 小白学习JavaScript初体验
- php学习小体验
- ios开发初体验
- 百钱买百鸡之数学优化
- shell中的颜色显示
- iOS开发中常用分类
- Xcode6下iOS单元测试——XCTest和GHUnit框架简介和比较
- ubuntu各版本工具下载链接
- iOS开发小白学习体验-3
- Android listView中点击item或Item中控件跳转对应的详情页面的实现(商品详情查看)
- pythonbrew+virtualenvwrapper隔离出django开发环境
- hdu-2717 Catch That Cow (BFS)
- Apache24安装和使用
- Iocomp进度条控件iLedbarX的使用【图文】
- 网页分页实现(css+js)
- 每日五题(jsp)
- 安卓开发工具下载