Xcode常用方法总结
来源:互联网 发布:淘宝出国旅游医疗保险 编辑:程序博客网 时间:2024/06/05 23:43
1、UIView 边框效果
CALayer *layer = [_myImageView layer];
2、UIView的阴影效果
layer.shadowOpacity = 0.8; //透明度
3、Block使用中的一些疑问解答
http://www.cocoachina.com/ios/20120514/4247.html
1. int number = 1;
_block = ^(){
NSLog(@"number %d", number);
};
number = 2;
_block(); 会把number当成常量变量编码到block中,使用__block进行修饰,
2. block在创建的时候,它的内存是分配在栈(stack)上,而不是在堆(heap)上;
它本身的作用域是创建的时候的作用域,一旦在创建时候的作用域外面调用block将导致程序崩溃。
解决这个问题的方法就是在创建完block的时候需要调用copy的方法。copy会把block从栈上移动到堆上,那么就可以在其他 地方使用这个block
3. 在block中使用self的时候,使用__block ViewController *controller = self; 修改,
4、获取文件夹的大小:
http://blog.sina.com.cn/s/blog_6d01cce30101hbk7.html
通常用于删除缓存的时,计算缓存大小
//单个文件的大小
-(long long) fileSizeAtPath:(NSString*) filePath{
}
//遍历文件夹获得文件夹大小,返回多少M
-(float ) folderSizeAtPath:(NSString*) folderPath{
}
5、#pragma mark - 限制输入的汉字个数
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(textFiledEditChanged:) name:@"UITextFieldTextDidChangeNotification" object:nil];
-(void)textFiledEditChanged:(NSNotification *)obj{
UITextField *textField = (UITextField *)obj.object;
NSString *toBeString = textField.text;
NSString *lang = [[UITextInputMode currentInputMode] primaryLanguage]; // 键盘输入模式
if ([lang isEqualToString:@"zh-Hans"]) { // 简体中文输入,包括简体拼音,健体五笔,简体手写
UITextRange *selectedRange = [textField markedTextRange];
//获取高亮部分
UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];
// 没有高亮选择的字,则对已输入的文字进行字数统计和限制
if (!position) {
if (toBeString.length > ReviewNumber) {
textField.text = [toBeString substringToIndex:ReviewNumber];
}
}
// 有高亮选择的字符串,则暂不对文字进行统计和限制
else{
}
}
// 中文输入法以外的直接对其统计限制即可,不考虑其他语种情况
else{
if (toBeString.length > ReviewNumber) {
textField.text = [toBeString substringToIndex:ReviewNumber];
}
}
}
//限制输入多少个字符
if ([toBeString lengthOfBytesUsingEncoding:NSUTF8StringEncoding] > ReviewNumber) {
[OMGToast showWithText:[NSString stringWithFormat:@"最多输入%ld个字符", (long)ReviewNumber]];
for (int i = ((int)toBeString.length - 1); i > 0; i--) {
NSString *str = [toBeString substringToIndex:i];
if ([str lengthOfBytesUsingEncoding:NSUTF8StringEncoding] <= ReviewNumber) {
textField.text = str;
break;
}
}
}
6、判断一个对象是什么对象类型
-(void) onResp:(BaseResp*)resp
if([resp isKindOfClass:[SendMessageToWXResp class]])
nsstring * className = @“seenMessageView"
Class class = NSClassFromString(className);
7、直接跳到 设置里面的定位授权页
if (IsiOS8Later) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
}
8、改变UITableView的header、footer背景颜色,这是个很常见的问题。之前知道的一般做法是,通过实现
tableView: viewForHeaderInSection:
返回一个自定义的View,里面什么都不填,只设背景颜色。但是今天发现一个更简洁的做法对于iOS 6及以后的系统,实现这个新的delegate函数即可:
- (void)tableView:(UITableView *)tableView willDisplayFooterView:(UIView *)view forSection:(NSInteger)section { view.tintColor = [UIColor clearColor];}
还可以改变文字的颜色:
- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
{
UITableViewHeaderFooterView *footer = (UITableViewHeaderFooterView *)view;
[footer.textLabelsetFont:[UIFontsystemFontOfSize:14.0]];
}
9、定时器
// 拿到外界传来的时间戳
- (void)setTimestamp:(NSInteger)timestamp{
_timestamp = timestamp;
if (_timestamp !=0) {
timer =[NSTimerscheduledTimerWithTimeInterval:1target:selfselector:@selector(timer:)userInfo:nilrepeats:YES];
}
}
-(void)timer:(NSTimer*)timerr{
_timestamp--;
[selfgetDetailTimeWithTimestamp:_timestamp];
if (_timestamp ==0) {
[timerinvalidate];
timer =nil;
// 执行block回调
self.timerStopBlock();
}
}
- (void)getDetailTimeWithTimestamp:(NSInteger)timestamp{
NSInteger ms = timestamp; //秒
NSInteger ss =1;
NSInteger mi = ss *60;
NSInteger hh = mi *60;
NSInteger dd = hh *24;
// 剩余的
NSInteger day = ms / dd;//天
NSInteger hour = (ms - day * dd) / hh;//时
NSInteger minute = (ms - day * dd - hour * hh) / mi;//分
NSInteger second = (ms - day * dd - hour * hh - minute * mi) / ss;//秒
// NSLog(@"%zd日:%zd时:%zd分:%zd秒",day,hour,minute,second);
}10、使用lipo合并.framework 文件
注意事项:KS3YunSDK.framework/KS3YunSDK 后边要加上KS3YunSDK,这样才是正确的方法。
11、取消延迟执行的方法
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(isSignIn) object:nil];
[self performSelector:@selector(isSignIn) withObject:nil afterDelay:1.0];
12、获取图片的GPS信息
- //获取图片的NSURL 来源于AssetsLibrary.framework #import <AssetsLibrary/AssetsLibrary.h>
- NSURL *url = [info objectForKey:UIImagePickerControllerReferenceURL];
- //ALAssetsLibrary 获取图片和视频
- ALAssetsLibrary *library = [[ALAssetsLibrary alloc]init];
- //根据url获取指定的图片 如果获取到了资源执行resultBlock,否则执行failureBlock
- //ALAsset实例 代表一个图片或者视频
- [library assetForURL:url resultBlock:^(ALAsset *asset){
- //defaultRepresentation 获取资源文件的默认属性
- //metadata 获取数据的数据,就是在默认属性中的数据,称之为元数据
- NSDictionary *imageData = [[NSMutableDictionary alloc]initWithDictionary:asset.defaultRepresentation.metadata];
- //kCGImagePropertyGPSDictionary 关于GPS的字典数据 来源于ImageIO.framework #import <ImageIO/ImageIO.h>
- NSDictionary *gpsData = [imageData objectForKey:(NSString *)kCGImagePropertyGPSDictionary];
- //打印纬度
- NSLog(@"%@",[gpsData objectForKey:@"Altitude"]);
- }failureBlock:^(NSError *error){
- NSLog(@"error:%@",error);
- }];
- Xcode常用方法总结
- Xcode常用快捷键总结
- Xcode 常用快捷键总结
- Xcode常用快捷键总结
- XCode常用快捷键总结
- XCODE常用调试方法
- Xcode 调试方法总结
- Xcode 调试方法总结
- Xcode调试方法总结
- xcode 常用使用技巧总结
- Xcode常用的技巧总结
- Mac & Xcode常用快捷键总结
- Xcode个人常用插件总结
- Xcode常用插件总结及问题解决
- 闲来无事,总结 Xcode常用快捷键
- ios xcode常用调试技巧总结
- jquery常用方法总结
- jquery常用方法总结
- 数位dp hdu2089
- CountDownTimer实现点击按钮倒计时
- 添加语言支持。
- 第四周阅读程序
- tomcat(错误一) 解决启动报错问题一
- Xcode常用方法总结
- Activity的四种launchMode
- 字体大小
- 深入了解 CSS3 新特性
- Java Message Service - RabbitMQ
- 用RxJava.Observable取代AsyncTask和AsyncTaskLoader-RxJava Android模版
- jquery弹出登陆效果
- 查看所有窗口小部件的 类名 和receiver名
- android中使用反射获取隐藏类