IOS开发一些常用功能

本文介绍了多种iOS开发实用技巧,包括通过手势识别实现点击背景关闭键盘、使用图片作为视图背景色、创建渐变效果、加载并显示网页内容、为UIView添加阴影效果等,并涉及iOS中的同步机制及资产库框架的应用。

1 点击背景时关闭键盘
在viewDidLoad中添加手势识别器

// add tap gesture recognizer
    UITapGestureRecognizer* tapRecognizer = [[UITapGestureRecognizer alloc] 
                                             initWithTarget:self 
                                             action:@selector(handleBackgroundTap:)];
    tapRecognizer.cancelsTouchesInView = NO;
    [self.view addGestureRecognizer:tapRecognizer];

 

定义函数

- (void) handleBackgroundTap:(UITapGestureRecognizer*)sender
{
    [phoneField resignFirstResponder];
    [nameField resignFirstResponder];
    [postcodeField resignFirstResponder];    
}

在该函数使文本字段取消第一响应者状态.

2 图片作为填充颜色
[UIColor colorWithPatternImage: [UIImage imageNamed:@"background"];

3 创建和绘制渐变

View Code
 CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    
    UIColor *startColor = [UIColor blueColor];
    CGFloat *startColorComponents = (CGFloat *)CGColorGetComponents([startColor CGColor]);
    
    UIColor *endColor = [UIColor greenColor];
    CGFloat *endColorComponents = (CGFloat *)CGColorGetComponents([endColor CGColor]);
    
    CGFloat colorComponents[8] = {
        startColorComponents[0],
        startColorComponents[1],
        startColorComponents[2],
        startColorComponents[3],
        endColorComponents[0],
        endColorComponents[1],
        endColorComponents[2],
        endColorComponents[3],
    };
    
    CGFloat colorIndices[2] = {
        0.0f,
        1.0f,
    };
    CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, (const CGFloat *)&colorComponents, (const CGFloat *)&colorIndices, 2);
    
    CGColorSpaceRelease(colorSpace);
    
    CGRect screenBounds = [[UIScreen mainScreen] bounds];
    
    CGPoint startPoint, endPoint;
    
    CGContextRef context = UIGraphicsGetCurrentContext();
    startPoint = CGPointMake(0.0f,screenBounds.size.height/2.0f);
    endPoint = CGPointMake(screenBounds.size.width, startPoint.y);
    CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0);
    CGGradientRelease(gradient);

 4 加载显示网页

View Code
NSURL *url = [NSURL URLWithString:_detailItem];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [_webView loadRequest:request];

 5 导航条加载图片做背景


6 UIView加阴影

View Code
sepLine = [[UIView alloc] init ];
 sepLine.frame = CGRectMake(LEFT_MARGIN+5, 0, cellWidth-LEFT_MARGIN-RIGHT_MARGIN, 1);
    //加阴影
     CAGradientLayer *bottomShadow = [[CAGradientLayer alloc] init];
    bottomShadow.frame = CGRectMake(2, 0, cellWidth-LEFT_MARGIN-RIGHT_MARGIN+2, 1);
    CGColorRef black = [UIColor lightGrayColor].CGColor;
    CGColorRef white = [UIColor whiteColor].CGColor;
    bottomShadow.colors = [NSArray arrayWithObjects:(__bridge id)black,(__bridge id)white, nil];
    [sepLine.layer addSublayer:bottomShadow];

 7 iOS 同步 synchronization
使用NSLock和@synchronized来保护临界区
还可以用dispatch_sync

8 获取屏幕信息
UIScreen用于获取当前所有屏幕(包括设备主屏幕)的屏幕对象。屏幕对象包含屏幕的属性信息(包括将屏幕的尺寸和
像素比例也考虑在内的屏幕特征)。

 9 资产库框架
iOS 4.0引入了资产库框架(AssetsLibrary.framework),该框架提供一个查询界面,您可以通过它查找用户照片和数据。通过使用该框架,您可以访问Photos管理的资产,包括用户保存的相册以及导入到设备中的图片或视频。而且您也可以将照片或者视频保存到用户的相册。

 

 

转载于:https://www.cnblogs.com/uvsjoh/archive/2012/08/14/2637591.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值