工作小知识点累积

今年刚刚换了工作,整理一下用到的小知识点,做个笔记,也方便有需要的的小伙伴们,如有错误,请指正,谢谢!

目前的积累还是比较少的,会随时添加的。

手势相关

1、允许多个手势并发

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
    return YES;
}

2、子视图屏蔽父视图手势

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
    if ([touch.view isDescendantOfView:所需要屏蔽的子视图]) {
        return NO;
    }
    return YES;
}

tabbar相关

1、最近项目需求,底部tabbar的背景图片不规则,两个tabbaritem平均分的位置有点偏差,需要移动tabbaritem的位置(系统的tabbar)

UINavigationController * na1 = (UINavigationController*)self.childViewControllers[1];
    [na1.tabBarItem setTitlePositionAdjustment:UIOffsetMake(2, 0)];

导航栏相关

1、导航栏与状态栏
1)ios 7 之后,setTranslucent=yes 默认的 则状态栏及导航栏底部为透明的,界面上的组件应该从屏幕顶部开始显示,因为是半透明的,可以看到,所以为了不和状态栏及导航栏重叠,第一个组件的y应该从44+20的位置算起
如果设置成no,则状态栏及导航样不为透明的,界面上的组件就是紧挨着导航栏显示了,所以就不需要让第一个组件在y方向偏离44+20的高度了。
2)设置导航栏图片。Gloabl Tint 默认颜色,更换图片时,添加[image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal],显示图片原本颜色
3)导航控制器可以赋给其他导航控制器

音视频处理

1、获取视频第一帧

/**
 *  获取视频第一帧
 *
 *  @return
 */
-(UIImage *)thumbnailImageForVideo:(NSURL *)videoURL atTime:(NSTimeInterval)time {
    AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:videoURL options:nil];
    NSParameterAssert(asset);
    AVAssetImageGenerator *assetImageGenerator =[[AVAssetImageGenerator alloc] initWithAsset:asset];
    assetImageGenerator.appliesPreferredTrackTransform = YES;
    assetImageGenerator.apertureMode =AVAssetImageGeneratorApertureModeEncodedPixels;
    
    CGImageRef thumbnailImageRef = NULL;
    CFTimeInterval thumbnailImageTime = time;
    NSError *thumbnailImageGenerationError = nil;
    thumbnailImageRef = [assetImageGenerator copyCGImageAtTime:CMTimeMake(thumbnailImageTime, 60)actualTime:NULL error:&thumbnailImageGenerationError];
    
    if(!thumbnailImageRef)
        NSLog(@"thumbnailImageGenerationError %@",thumbnailImageGenerationError);
    
    UIImage*thumbnailImage = thumbnailImageRef ? [[UIImage alloc]initWithCGImage:thumbnailImageRef] : nil;
    
    return thumbnailImage;
}

设置控件全局显示样式appearance proxy

appearance是apple在iOS5.0上加的一个协议,它让程序员可以很轻松地改变某控件的全局样式(背景)
支持UIAppearance协议的类可以访问appearance selector ,它为receiver返回appearance proxy,可以给proxy发一些消息,像setTintColor:等
但是有一点,就是支持的类有限,支持的类有:

1.UIActivitiIndicatorView
2.UIBarButtonItem
3.UIBarItem
4.UINavgationBar
5.UIPopoverControll
6.UIProgressView
7.UISearchBar
8.UISegmentControll
9.UISlider
10.UISwitch
11.UITabBar
12.UITabBarItem
13.UIToolBar
14.UIView
15.UIViewController

例:
[[UINavigationBar appearance] setTintColor:[UIColor blackColor]];
[[UIView appearance] setTintColor:[UIColor blackColor]];

你可能感兴趣的:(工作小知识点累积)