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

iOS开发杂记

2016-09-23 14:12 232 查看
// 平常的一些小笔记,原创又非原创,部分是网上看来的,部分自己总结的

一.iphone程序中实现截屏的方法

在iphone程序中实现截屏的一种方法:

//导入头文件

import QuartzCore/QuartzCore.h

//将整个self.view大小的图层形式创建一张图片image UIGraphicsBeginImageContext(self.view.bounds.size);

[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];

UIImage*image=UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

//然后将该图片保存到图片图

UIImageWriteToSavedPhotosAlbum(image,self,nil,nil);

截取屏幕图片

//创建一个基于位图的图形上下文并指定大小为CGSizeMake(200,400)

UIGraphicsBeginImageContext(CGSizeMake(200,400));

//renderInContext 呈现接受者及其子范围到指定的上下文

[self.view.layerrenderInContext:UIGraphicsGetCurrentContext()];

//返回一个基于当前图形上下文的图片

UIImage *aImage =UIGraphicsGetImageFromCurrentImageContext();

//移除栈顶的基于当前位图的图形上下文

UIGraphicsEndImageContext();

//以png格式返回指定图片的数据

imageData = UIImagePNGRepresentation(aImage);

二.Objective-c 画图

1.颜色和字体

UIKit提供了UIColor和UIFont类来进行设置颜色和字体,

UIColor *redColor=【UIColor redColor】;

【redColor set】;//设置为红色

UIFont *front=【UIFont systemFontOfSize:14.0】;//获得系统字体

【myLable setFont:font】;//设置文本对象的字体

2.drawRect方法

对于画图,你首先需要重载drawRect方法,然后调用setNeedsDisplay方法让系统画图:

-(void)drawRect:(CGRect)rect;//在rect指定的区域画图

-(void)setNeedsDisplay;//让系统调用drawRect画图

3.CoreGraphics API

UiKit所提供的画图类比较简单,就是我们上面所说的UIRectFill和UIRectFrame两个方法。对于复杂的画图。你需要 使用CoreGraphics API.

步骤一:获得当前画图的上下文(CGContextRef) UIGraphicsGetCurrentContext(void);

步骤二:定义一个图的轨迹(path),比如你要画一个三角形,那么,第一步就是画出这个三角形的轮廓。但是并不在屏幕上显示该图。

步骤三:设置填充颜色

步骤四: 设置图框颜色

步骤五:让系统画图,这是你就看到了所化的图形

三.关于控制器Controller的思考

iPhone开发中,只有一个窗口,对应的是多个视图,而视图的组织形式各种各样,关键是要靠控制器来组织各个视图的逻辑关系。大体的关系如下:

窗体—主控制器(比如说导航控制器),主控制器在窗体里面,拖动过去即可,在AppDelegate中写相关变量的代码—在主控制器下有别的控制器,比如视图控制器,可以通过interfacebuilder来关联根视图什么的—-视图控制器相当于一个根视图,可以调用其他的视图—视图中包含类文件(.h,.m)和图形界面文件(.xib)(两个之间必须关联起来。)

四.翻页效果

经常看到iPhone的软件向上向下翻页面的效果,其实这个很简单,已经有封装好的相关方法处理。

//首先设置动画的相关参数

[UIView beginAnimations:@”Curl”context:nil];

[UIView setAnimationDuration:1.25]; //时间

[UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut];//速度

//然后设置动画的动作和目标视图

[UIViewsetAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];

参数UIViewAnimationTransitionCurlUp代表向上翻页,如果向下的话UIViewAnimationTransitionCurlDown.

forView那把当前的视图传进去。

//最后提交动画

[UIView commitAnimations];

五.让一个UIImageView响应点击事件

UIImageView *imgView =[[UIImageViewalloc]initWithFrame:CGRectMake(0,0,320,44)];

imgView.userInteractionEnabled=YES;

UITapGestureRecognizer *singleTap =[[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(onClickImage)];

[imgView addGestureRecognizer:singleTap];

[singleTap release];

-(void)onClickImage{

// here, do whatever you wantto do

NSLog(@”imageview is clicked!”);

}

六.启动界面的制作

iPhone开发实现splash画面非常简单,做一个全屏的欢迎页的图片,把它命名为Default.png,然后放在Xcode工程的Resource里面。

在XXXAppDelegate.m程序中,插入如下代码:

- (BOOL)application:(UIApplication*)application

didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

//–inserta delay of 5 seconds before the splash screendisappears–

[NSThread sleepForTimeInterval:5.0];

//Override point for customization after applicationlaunch.

//Add the view controller’s view to the window anddisplay.

[windowaddSubview:viewController.view];

[windowmakeKeyAndVisible];

return YES;

}

这样splash页面就停留5秒后,消失了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: