ios学习之个人总结(通用2篇)
篇1:ios学习之个人总结
1、初始化WebView
- (void)viewDidLoad
{
[super viewDidLoad];
webView = [[UIWebView alloc] initWithFrame.:CGRectMake(0, 0, 320, 480)];
NSURLRequest *request =[NSURLRequest requestWithURL:[NSURL URLWithString:@www.baidu.com]];
[self.view addSubview: webView];
[webView loadRequest:request];
}
2、
实现协议,在ViewController.h修改如下
#import
@interface ViewController : UIViewController
{
UIWebView *webView;
}
@end
UIWebView中几个重要的函数
1.- (void )webViewDidStartLoad:(UIWebView *)webView 网页开始加载的时候调用
2.- (void )webViewDidFinishLoad:(UIWebView *)webView 网页加载完成的时候调用
3.- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error 网页加载错误的时候调用
先在viewDidLoad 的webView实例化下面加上
[webView setDelegate:self];设置代理,这样上面的三个方法才能得到回调。
3、加载等待页面
- (void) webViewDidStartLoad:(UIWebView *)webView
{
//创建UIActivityIndicatorView背底半透明View
UIView *view = [[UIView alloc] initWithFrame.:CGRectMake(0, 0, 320, 480)];
[view setTag:108];
[view setBackgroundColor:[UIColor blackColor]];
[view setAlpha:0.5];
[self.view addSubview:view];
activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame.:CGRectMake(0.0f, 0.0f, 32.0f, 32.0f)];
[activityIndicator setCenter:view.center];
[activityIndicator setActivityIndicatorViewStyle.:UIActivityIndicatorViewStyleWhite];
[view addSubview:activityIndicator];
[activityIndicator startAnimating];
}
加载完成或失败时,去掉loading效果
- (void) webViewDidFinishLoad:(UIWebView *)webView
{
[activityIndicator stopAnimating];
UIView *view = (UIView*)[self.view viewWithTag:108];
[view removeFromSuperview];
NSLog(@webViewDidFinishLoad);
}
- (void) webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
[activityIndicator stopAnimating];
UIView *view = (UIView*)[self.view viewWithTag:108];
[view removeFromSuperview];
}
篇2:ios学习之个人总结
触摸事件
手势识别
手机摇晃
一、iOS的输入事件
触摸事件(滑动、点击)
运动事件(摇一摇、手机倾斜、行走),不需要人为参与的
远程控制事件(耳机控制手机声音)
1⃣️iOS事件对象都是UIEvent类的实例
UIEvent类对事件类型定义了enum常量:
typedef NS_ENUM(NSInteger, UIEventType){
UIEventTypeTouches,
UIEventTypeMotion,
UIEventRemoteControl,
};
触摸事件必须是继承UIResponser的
二、触摸事件
1⃣️UIView,有4种处理不同的触摸事件
UIView是UIResponder的子类,可以覆盖下列4个方法处理不同的触摸事件,
1. 一根或者多根手指开始触摸屏幕
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
2.一根或者多根手指在屏幕上移动(随着手指的移动,会持续调用该方法)
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
3.一根或者多根手指离开屏幕
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
4.触摸结束前,某个系统事件(例如电话呼入)会打断触摸过程
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
复制代码
#pragma mark - UITouch事件
#pragma mark 触摸开始
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@“触摸开始”);
for (UITouch *touch in touches) {
NSLog(@“%@”, touch);
}
}
#pragma mark 触摸移动
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@“触摸移动Touch对象个数:%d”,[touches count]);
// 要移动界面上黄颜色的视图
// 1. 得到当前手指的位置
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:self.view];
// 2. 得到上一次手指的位置
CGPoint preLocation = [touch previousLocationInView:self.view];
// 3. 计算两个位置之间的偏移
CGPoint ffset = CGPointMake(location.x - preLocation.x, location.y - preLocation.y);
// 4. 使用计算出来的偏移量,调整视图的位置
[_demoView setCenter:CGPointMake(_demoView.center.x + offset.x, _demoView.center.y + offset.y)];
// 完整的UITouch事件调试方法
NSLog(@“触摸移动”);
for (UITouch *touch in touches) {
NSLog(@“%@”, touch);
}
}
#pragma mark 触摸结束
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
// 完整的UITouch事件调试方法
NSLog(@“触摸完成”);
for (UITouch *touch in touches) {
NSLog(@“%@”, touch);
}
}
#pragma mark 触摸中断
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
{
// 完整的UITouch事件调试方法
NSLog(@“触摸中断”);
for (UITouch *touch in touches) {
NSLog(@“%@”, touch);
}
}
复制代码
2⃣️触摸事件的处理
如果hit-test视图无法处理事件,则通过响应者链向上传递
1.如果hit-test视图的控制器存在,就传递给控制器;如果控制器不存在,则将其传递给它的父视图
2.如果视图或它的控制器无法处理收到的事件或消息,则将其传递给该视图的父视图
3.每一个在视图继承树中的上层视图如果不能处理收到的事件或消息,则重复上面的步骤1,2
4.在视图继承树的最上层视图,如果也不能处理收到的事件或消息,则其将事件或消息传递给窗口对象进行处理
5. 如果窗口对象也不能进行处理,则其将事件或消息传递给UIApplication对象
6.如果UIApplication也不能处理该事件或消息,则将其丢弃
当用户点击屏幕时,会产生一个UITouch对象传递给UIApplication,然后由window负责查找最适合相应触摸事件的视图对象(hitTest,pointInside)
找到合适的视图之后,Touch方法由对应的视图完成,上级视图不再接管
3⃣️不接受处理事件的三种方法
不接收用户交互:userInteractionEnabled = NO;
隐藏:hidden = YES;
透明:alpha = 0~0.01
三、手势识别
1⃣️iOS目前支持的手势识别(6种)
UITapGestureRecognizer(点按)
UIPinchGestureRecognizer(捏合)
UIPanGestureRecognizer(拖动)
UISwipeGestureRecognizer(轻扫)
UIRotationGestureRecognizer(旋转)
UILongPressGestureRecognizer(长按)
2⃣️手势识别的使用方法(4步)
通常在视图加载的时候定义(UIGestureRecognizer是抽象类,需要实例化使用)
创建手势识别实例
设置手势识别属性,例如手指数量,方向等
将手势识别附加到指定的视图之上
编写手势触发响应方法
3⃣️手势识别的状态(7个)
1.// 没有触摸事件发生,所有手势识别的默认状态
UIGestureRecognizerStatePossible,
// 一个手势已经开始但尚未改变或者完成时
UIGestureRecognizerStateBegan,
// 手势状态改变
UIGestureRecognizerStateChanged,
// 手势完成
UIGestureRecognizerStateEnded,
// 手势取消,恢复至Possible状态
UIGestureRecognizerStateCancelled,
// 手势失败,恢复至Possible状态
UIGestureRecognizerStateFailed,
// 识别到手势识别
UIGestureRecognizerStateRecognized =UIGestureRecognizerStateEnded
2.手势识别的属性
state——手势状态
view——手势发生视图
常用方法
locationInView 获得手势发生对应视图所在位置
复制代码
- (void)viewDidLoad
{
[super viewDidLoad];
/**
1. 演示点按手势
*/
// 根据实例化方法,我们知道:
// 1.有一个处理消息的对象,应该是self
// 2.我们需要定义一个方法,当手势识别检测到的时候,运行
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapAction:)];
// setNumberOfTapsRequired 点按次数
[tap setNumberOfTapsRequired:1];
// setNumberOfTouchesRequired 点按的手指数量
[tap setNumberOfTouchesRequired:1];
// 把手势识别增加到视图上
[self.demoView addGestureRecognizer:tap];
【ios学习之个人总结】相关文章:
web安全学习之xss个人总结07-31
iOS学习之WebView的使用07-14
党校学习之研讨总结08-08
手语学习之活动总结08-27
长拳学习之感想04-14
合作学习之感想07-22
党校学习之党性分析08-08
自主学习之我见03-04
数学合作学习之优势08-13