IOS开发入门之iOS小技巧总结
白羽 2018-11-23 来源 :网络 阅读 1408 评论 0

摘要:本文将带你了解IOS开发入门iOS小技巧总结,希望本文对大家学IOS有所帮助。

    本文将带你了解IOS开发入门iOS小技巧总结,希望本文对大家学IOS有所帮助。



        

UITableView的Group样式下顶部空白处理


   

//分组列表头部空白处理

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0.1)];

self.tableView.tableHeaderView = view;

   

获取某个view所在的控制器


   

- (UIViewController *)viewController

{

UIViewController *viewController = nil;

UIResponder *next = self.nextResponder;

while (next)

{

if ([next isKindOfClass:[UIViewController class]])

{

viewController = (UIViewController *)next;

break;

}

next = next.nextResponder;

}

return viewController;

}

   

两种方法删除NSUserDefaults所有记录

方法一


   

NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];

[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];

   

方法二



   

- (void)resetDefaults

{

NSUserDefaults * defs = [NSUserDefaults standardUserDefaults];

NSDictionary * dict = [defs dictionaryRepresentation];

for (id key in dict)

{

[defs removeObjectForKey:key];

}

[defs synchronize];

}

   

<h2 id="打印系统所有已注册的字体名称">打印系统所有已注册的字体名称


   

#pragma mark - 打印系统所有已注册的字体名称

void enumerateFonts()

{

for(NSString *familyName in [UIFont familyNames])

{

NSLog(@"%@",familyName);

NSArray *fontNames = [UIFont fontNamesForFamilyName:familyName];

for(NSString *fontName in fontNames)

{

NSLog(@"\t|- %@",fontName);

}

}

}

   

获取图片某一点的颜色


- (UIColor*) getPixelColorAtLocation:(CGPoint)point inImage:(UIImage *)image

{

UIColor* color = nil;

CGImageRef inImage = image.CGImage;

CGContextRef cgctx = [self createARGBBitmapContextFromImage:inImage];

if (cgctx == NULL) {

return nil; /* error */

}

size_t w = CGImageGetWidth(inImage);

size_t h = CGImageGetHeight(inImage);

CGRect rect = {{0,0},{w,h}};

CGContextDrawImage(cgctx, rect, inImage);

unsigned char* data = CGBitmapContextGetData (cgctx);

if (data != NULL) {

int offset = 4*((w*round(point.y))+round(point.x));

int alpha =  data[offset];

int red = data[offset+1];

int green = data[offset+2];

int blue = data[offset+3];

color = [UIColor colorWithRed:(red/255.0f) green:(green/255.0f) blue:

(blue/255.0f) alpha:(alpha/255.0f)];

}

CGContextRelease(cgctx);

if (data) {

free(data);

}

return color;

}

   

字符串反转

第一种:


   

- (NSString *)reverseWordsInString:(NSString *)str

{

NSMutableString *newString = [[NSMutableString alloc] initWithCapacity:str.length];

for (NSInteger i = str.length - 1; i >= 0 ; i --)

{

unichar ch = [str characterAtIndex:i];

[newString appendFormat:@"%c", ch];

}

return newString;

}

   

第二种:


   

- (NSString*)reverseWordsInString:(NSString*)str

{

NSMutableString *reverString = [NSMutableString stringWithCapacity:str.length];

[str enumerateSubstringsInRange:NSMakeRange(0, str.length) options:NSStringEnumerationReverse | NSStringEnumerationByComposedCharacterSequences  usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {

[reverString appendString:substring];

}];

return reverString;

}

   

禁止锁屏

 

默认情况下,当设备一段时间没有触控动作时,iOS会锁住屏幕。但有一些应用是不需要锁屏的,比如视频播放器。


   

[UIApplication sharedApplication].idleTimerDisabled = YES;

   


[[UIApplication sharedApplication] setIdleTimerDisabled:YES];

   

模态推出透明界面



   

UIViewController *vc = [[UIViewController alloc] init];

UINavigationController *na = [[UINavigationController alloc] initWithRootViewController:vc];

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)

{

na.modalPresentationStyle = UIModalPresentationOverCurrentContext;

}

else

{

self.modalPresentationStyle=UIModalPresentationCurrentContext;

}

[self presentViewController:na animated:YES completion:nil];

   

Xcode调试不显示内存占用

editSCheme 里面有个选项叫叫做 enable zoombie Objects取消选中

显示隐藏文件

显示 


   

<code><code>defaults write com.apple.finder AppleShowAllFiles -bool true

killall Finder</code></code>

   

隐藏 


   

<code><code>defaults write com.apple.finder AppleShowAllFiles -bool false

killall Finder</code></code>

   

iOS跳转到App Store下载应用评分


   

<code><code>[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=APPID"]];</code></code>

   

iOS 获取汉字的拼音


   

<code><code>+ (NSString *)transform:(NSString *)chinese

{

//将NSString装换成NSMutableString

NSMutableString *pinyin = [chinese mutableCopy];

//将汉字转换为拼音(带音标)

CFStringTransform((__bridge CFMutableStringRef)pinyin, NULL, kCFStringTransformMandarinLatin, NO);

NSLog(@"%@", pinyin);

//去掉拼音的音标

CFStringTransform((__bridge CFMutableStringRef)pinyin, NULL, kCFStringTransformStripCombiningMarks, NO);

NSLog(@"%@", pinyin);

//返回最近结果

return pinyin;

}</code></code>

   

手动更改iOS状态栏的颜色


   

<code><code>- (void)setStatusBarBackgroundColor:(UIColor *)color

{

UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];

if ([statusBar respondsToSelector:@selector(setBackgroundColor:)])

{

statusBar.backgroundColor = color;

}

}</code></code>

   

判断当前ViewController是push还是present的方式显示的



   

<code><code>NSArray *viewcontrollers=self.navigationController.viewControllers;

if (viewcontrollers.count > 1)

{

if ([viewcontrollers objectAtIndex:viewcontrollers.count - 1] == self)

{

//push方式

[self.navigationController popViewControllerAnimated:YES];

}

}

else

{

//present方式

[self dismissViewControllerAnimated:YES completion:nil];

}</code></code>

   

 

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved