您的位置:首页 > 移动开发 > IOS开发

iOS 开发问题小结one

2016-08-07 11:42 344 查看
IOS 开发文档:

https://developer.apple.com/library/ios/releasenotes/General/WhatsNewIniOS/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008246

在cell里面添加视频,遇到的问题:

1. 黑屏的问题?

MPMoviePlayerController解决的办法是,因为开始做的时候是在一个view里添加视频,用的是全局变量myPlayer,接着在此基础上在cell里添加视频,就想着用局部变量,所以导致了黑屏,ios5+都需要用全局,还有网友提出如果去掉ARC就可以播放了,由于现在是初始阶段,所以功能没那么多,我就改成了全局变量。

现在完成了,视频能够切换,暂停,停止的功能。下面应该增加快进,后退的功能。

–2015.10.8

追加:

ios播放视频文件一般使用 MPMoviePlayerViewController 和 MPMoviePlayerController。这两者的区别就是MPMoviePlayerViewController里面包含了一个MPMoviePlayerController

不管使用哪个都要导入MediaPlayer.framework。而且MPMoviePlayerViewController 必须 presentMoviePlayerViewControllerAnimated方式添加,否则Done按钮是不会响应通知MPMoviePlayerPlaybackDidFinishNotification事件的。

在iOS开发中,播放视频通常有两种方式,一种是使用MPMoviePlayerController(需要导入MediaPlayer.Framework),还有一种是使用AVPlayer。简而言之就是MPMoviePlayerController使用更简单,功能不如AVPlayer强大,而AVPlayer使用稍微麻烦点,不过功能更加强大。

MediaPlayer的影片是放在UIView 裡面,而AVPlayer是放AVPlayerLayer裡面,AVPlayerLayer是CALayer 的子類別。

使用MediaPlayer前,要記得加入MediaPlayer.framework及#import。

使用AVPlayer前,要記得加入AVFoundation.frameworkk及#import。

AVPlayer的基本使用:

http://www.th7.cn/Program/IOS/201405/197169.shtml

对于UIImagePickerController图片选取器的学习:

1。 定义 类变量:

UIImagePickerController * picker_library_;

2。实现 UIImagePickerControllerDelegate 这个delegate,还需要UINavigationControllerDelegate 这个代理

3。 以模态的方式,显示 图片选取器

picker_library_ = [[UIImagePickerController alloc] init];

picker_library_.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

picker_library_.allowsEditing = YES;

picker_camera_.allowsImageEditing=YES;

picker_library_.delegate = self;

[self presentModalViewController: picker_library_

animated: YES];

其中,sourceType 指定了 几种 图片的来源:

UIImagePickerControllerSourceTypePhotoLibrary:表示显示所有的照片

UIImagePickerControllerSourceTypeCamera:表示从摄像头选取照片

UIImagePickerControllerSourceTypeSavedPhotosAlbum:表示仅仅从相册中选取照片。

allowEditing和allowsImageEditing 设置为YES,表示 允许用户编辑图片,否则,不允许用户编辑。

对Core Services层的学习:

Core Services层为所有的应用程序提供基础系统服务,可能应用程序并不直接使用这些服务,但它们是系统很多部分赖以建构的基础。

具体内容在:

http://www.cnblogs.com/linyawen/archive/2013/01/17/2864750.html

IOS
<netinet/in.h>
其实质是用于网络编程,网卡和IP地址相关的定义。

AFNetworking可选的依赖SystemConfiguration框架来进行网络可达性监测,依赖MobileCoreServices对上传文件进行MIME类型检测。添加这两个即为core services服务层。

AFNetworking是一个讨人喜欢的网络库,适用于iOS以及Mac OS X. 它构建于在NSURLConnection, NSOperation, 以及其他熟悉的Foundation技术之上. 它拥有良好的架构,丰富的api,以及模块化构建方式。

IOS基础Framework作用:

http://blog.sina.com.cn/s/blog_51a995b70101kypz.html

核心基础框架(CoreFoundation.framework)是基于C语言的接口集,提供iPhone应用的基本数据管理和服务功能。

iOS 线程同步方法总结:

http://www.tekuba.net/program/351/

专门为iOS和OS X开发者提供的深入讨论技术的平台:

https://www.objc.io/issues/

OC的方法定义:

•无参的方法

-(返回值类型)方法名;

•有1个参数的方法

-(返回值类型)方法名:(参数类型)参数名;

•有多个参数的方法

-(返回值类型)方法名:(参数1类型)参数名1 (参数2类型)参数名2 (参数n类型)参数名n …;

注:”:”号也是方法名的一部分

•有多个参数的方法(推荐写法)

-(返回值类型)部分方法名:(参数1类型)参数名1部分方法名2: (参数2类型)参数名2 部分方法名n:(参数n类型)参数名…..n.;

UITabBarController的例子:

http://www.cnblogs.com/wendingding/p/3775488.html

–15.10.15

IOS的UITableView的方法如:如何移动行,删除,增加行。

还有对变量用之前一定要初始化,都则会出错。具体的代码见NavigationControllers.

**JW Media Playe**r 是开源的网页使用的 Flash 播放器。

http://www.open-open.com/lib/view/open1388104840406.html

UIViewController的生命周期

ViewController生命周期会经历初始化、加载视图、销毁视图、生命结束等过程。

1)init方法

初始化ViewController本身。

2)loadView方法

当view需要被展示而它却是nil时,viewController会调用该方法,如果代码构建View的话需要重写此方法。

3)viewDidLoad方法

执行完loadView后继续执行viewDidLoad,loadView时还没有view,而viewDidLoad时view已经创建好了。

4)viewwillAppear

5)viewdidAppear

6)viewwillDisappear

8)viewdidDisappear

9)viewDidUnload方法

当系统内存吃紧的时候会调用该方法。

10)dealloc

释放其他资源或内存

UIbutton触发事件:

UIControlEventTouchDown

单点触摸按下事件:用户点触屏幕,或者又有新手指落下的时候。

UIControlEventTouchDownRepeat

多点触摸按下事件,点触计数大于1:用户按下第二、三、或第四根手指的时候。

UIControlEventTouchDragInside

当一次触摸在控件窗口内拖动时。

UIControlEventTouchDragOutside

当一次触摸在控件窗口之外拖动时。

UIControlEventTouchDragEnter

当一次触摸从控件窗口之外拖动到内部时。

UIControlEventTouchDragExit

当一次触摸从控件窗口内部拖动到外部时。

UIControlEventTouchUpInside

所有在控件之内触摸抬起事件。

UIControlEventTouchUpOutside

所有在控件之外触摸抬起事件(点触必须开始与控件内部才会发送通知)。

UIControlEventTouchCancel

所有触摸取消事件,即一次触摸因为放上了太多手指而被取消,或者被上锁或者电话呼叫打断。

UIControlEventTouchChanged

当控件的值发生改变时,发送通知。用于滑块、分段控件、以及其他取值的控件。你可以配置滑块控件何时发送通知,在滑块被放下时发送,或者在被拖动时发送。

UIControlEventEditingDidBegin

当文本控件中开始编辑时发送通知。

UIControlEventEditingChanged

当文本控件中的文本被改变时发送通知。

UIControlEventEditingDidEnd

当文本控件中编辑结束时发送通知。

UIControlEventEditingDidOnExit

当文本控件内通过按下回车键(或等价行为)结束编辑时,发送通知。

UIControlEventAlltouchEvents

通知所有触摸事件。

UIControlEventAllEditingEvents

通知所有关于文本编辑的事件。

UIControlEventAllEvents

通知所有事件。

UISegmentsControl:

http://blog.csdn.net/xingboss3/article/details/7965450

UISlider,如果高度小于一定的值,是无法滑动的,开始我把高度设为0,无法滑动,改成20就可以滑动。

UIWebView,UIActivityIndicatorView.对于前者主要参考工程2015.11里面的UIWeb.这里主要是针对后者:

UIActivityIndicatorView 非常简单 ,就是一个转圈圈的控件

初始化方法

- initWithActivityIndicatorStyle

控制一个Activity Indicator

- startAnimating

- stopAnimating

- isAnimating

hidesWhenStopped 属性

配置Activity Indicator 外观

activityIndicatorViewStyle 属性

color 属性 (iOS 5 引入)

常量三个

typedef enum {

UIActivityIndicatorViewStyleWhiteLarge,

UIActivityIndicatorViewStyleWhite,

UIActivityIndicatorViewStyleGray,

} UIActivityIndicatorViewStyle;

使用方式就是

UIActivityIndicatorView *testActivityIndicator = [UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite]];

testActivityIndicator.center = CGPointMake(100.0f, 100.0f);//只能设置中心,不能设置大小

[testActivityIndicator setFrame = CGRectMack(100, 100, 100, 100)];//不建议这样设置,因为UIActivityIndicatorView是不能改变大小只能改变位置,这样设置得到的结果是控件的中心在(100,100)上,而不是和其他控件的frame一样左上角在(100, 100)长为100,宽为100.

[self addSubview:testActivityIndicator];

testActivityIndicator.color = [UIColor redColor]; // 改变圈圈的颜色为红色; iOS5引入

[testActivityIndicator startAnimating]; // 开始旋转

[testActivityIndicator stopAnimating]; // 结束旋转

[testActivityIndicator setHidesWhenStopped:YES]; //当旋转结束时隐藏

还有一个是isAnimating方法,返回一个BOOL值,可以用这个方法来判断控件是否在旋转

initWithActivityIndicatorStyle是UIActivityIndicatorView唯一的初始化方法

属性值是一个枚举变量,只有三个值:

UIActivityIndicatorViewStyleWhite; 白色圆圈

UIActivityIndicatorViewStyleWhiteLarge; 白色圆圈 但是要大些

UIActivityIndicatorViewStyleGray; 灰色圆圈

UIPageControl,一般都是于UIScrollView结合起来使用。详细的参看工程UIPageControl.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐