iOS开发中不常见的属性设置

这是一篇相当于,我开发过程中的一篇笔记吧。可能比较杂乱,是我的第一篇文章。

1.应用三方地图软件的时候:地图功能显示网格

出现这个的原因,可能是你的地图apikey有问题,

2. button 文字对其

Button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;//左对齐(UIControlContentHorizontalAlignment、CenterUIControlContentHorizontalAlignmentFill、UIControlContentHorizontalAlignmentRight)

Button.contentVerticalAlignment = UIControlContentVerticalAlignmentBottom;//底部对其(UIControlContentVerticalAlignmentCenter、UIControlContentVerticalAlignmentFill、UIControlContentVerticalAlignmentTop)


3设置button 上图片,文字的位置

button.imageEdgeInsets = UIEdgeInsetsMake(5,13,21,button.titleLabel.bounds.size.width);//设置image在button上的位置(上top,左left,下bottom,右right)这里可以写负值,对上写-5,那么image就象上移动5个像素

button.titleEdgeInsets = UIEdgeInsetsMake(71, -button.titleLabel.bounds.size.width-50, 0, 0);//设置title在button上的位置(上top,左left,下bottom,右right)

4.向上取整 ceilf()


5断点续传主要方法

/ /. 操作

AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request];

_downloadOperation = op;

// 下载

// 指定文件保存路径,将文件保存在沙盒中

NSArray docs = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString path = [docs[0] stringByAppendingPathComponent:@“download.zip”];

op.outputStream = [NSOutputStream outputStreamToFileAtPath:path append:NO];

// 设置下载进程代码块

bytesRead 当前第一次读取的字节数(100k)

totalBytesRead 已经下载的字节数(4.9M)

totalBytesExpectedToRead 文件总大小(5M)

[op setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) {

// 设置进度条百分比

CGFloat precent = (CGFloat)totalBytesRead / totalBytesExpectedToRead;

NSLog(@"%f", precent);

_progressView.progress = precent;

}];


6//主动退出程序


- (void)exitApplication {

[UIView beginAnimations:@"exitApplication" context:nil];

[UIView setAnimationDuration:0.5];

[UIView setAnimationDelegate:self];

// [UIView setAnimationTransition:UIViewAnimationCurveEaseOut forView:self.view.window cache:NO];

[UIView setAnimationTransition:UIViewAnimationCurveEaseOut forView:self.window cache:NO];

[UIView setAnimationDidStopSelector:@selector(animationFinished:finished:context:)];

//self.view.window.bounds = CGRectMake(0, 0, 0, 0);

self.window.bounds = CGRectMake(0, 0, 0, 0);

[UIView commitAnimations];

}

- (void)animationFinished:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {

if ([animationID compare:@"exitApplication"] == 0) {

exit(0);

}

}


8设置tableViewCell间的分割线的颜色

[theTableView setSeparatorColor:[UIColor xxxx ]];


9.SDWebImage 清除图片缓存

指定的

[[SDImageCache sharedImageCache] removeImageForKey:url];

[[SDImageCache sharedImageCache] removeImageForKey:url fromDisk:YES];

全部

[[SDImageCache sharedImageCache] clearDisk];

[[SDImageCache sharedImageCache] clearMemory];

忽略缓存,每次都直接下载方法

   UIImage *selectImage = [UIImage imageNamed:[NSString stringWithFormat:@"bottom_profile_active"]];

    self.tabBarController.tabBar.selectedItem.selectedImage  = [selectImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

10.tableView正在滚动停止滚动

CGPoint offset = self.tableView.contentOffset;

(self.tableView.contentOffset.y > 0) ? offset.y-- : offset.y++;

[self.tableView setContentOffset:offset animated:NO];

另外://在willDisplayCell里面处理数据能优化tableview的滑动流畅性

//获取所有cell 的方法

NSArray*array = [self.tableView visibleCells]; 

11.修改tabbar

设置文字颜色

[self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor blackColor],

设置位子字体

NSForegroundColorAttributeName, [UIFont systemFontOfSize:18], NSFontAttributeName, nil]];

取到对应nav

UIViewController *vc2 = self.tabBarController.viewControllers[2];

设置对应图片

UIImage * homenormalImage = [[UIImage imageNamed:@"bottom_tv_bg"]  imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

UIImage * homeselectImage = [[UIImage imageNamed:@"bottom_tv_bg"]  imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

vc2.tabBarItem=[[UITabBarItem alloc]initWithTitle:@"" image:homenormalImage selectedImage:homeselectImage];

设置文字位置

[self.navigationController.tabBarItem setTitlePositionAdjustment:UIOffsetMake(0, -5)];

设置图片位置

self.navigationController.tabBarItem.imageInsets = UIEdgeInsetsMake(-2.5, 0, 2.5, 0);

12.GCD并列请求:

dispatch_group_t serviceGroup = dispatch_group_create();

// Start the first service

dispatch_group_enter(serviceGroup);

[self.configService startWithCompletion:^(ConfigResponse *results, NSError* error){

// Do something with the results

configError = error;

dispatch_group_leave(serviceGroup);

}];

// Start the second service

dispatch_group_enter(serviceGroup);

[self.preferenceService startWithCompletion:^(PreferenceResponse *results, NSError* error){

// Do something with the results

preferenceError = error;

dispatch_group_leave(serviceGroup);

}];

dispatch_group_notify(serviceGroup,dispatch_get_main_queue(),^{

// Assess any errors

NSError *overallError = nil;

if (configError || preferenceError)

{

// Either make a new error or assign one of them to the overall error

overallError = configError ?: preferenceError;

}

// Now call the final completion block

completion(overallError);

});

13.防止 timer  阻塞

[[NSRunLoop currentRunLoop] addTimer:_animationTimer forMode:UITrackingRunLoopMode];

14.masonry  等分控件

/**

*  多个控件固定间隔的等间隔排列,变化的是控件的长度或者宽度值

*

*  @param axisType        轴线方向

*  @param fixedSpacing    间隔大小

*  @param leadSpacing    头部间隔

*  @param tailSpacing    尾部间隔

*/

- (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType

withFixedSpacing:(CGFloat)fixedSpacing l

eadSpacing:(CGFloat)leadSpacing

tailSpacing:(CGFloat)tailSpacing;

/**

*  多个固定大小的控件的等间隔排列,变化的是间隔的空隙

*

*  @param axisType        轴线方向

*  @param fixedItemLength 每个控件的固定长度或者宽度值

*  @param leadSpacing    头部间隔

*  @param tailSpacing    尾部间隔

*/

- (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType

withFixedItemLength:(CGFloat)fixedItemLength

leadSpacing:(CGFloat)leadSpacing

tailSpacing:(CGFloat)tailSpacing;


15.数据遍历快速,高效方法

//enumerateObjectsUsingBlock 类似于for,但是比for更快

[array enumerateObjectsUsingBlock:^(MyCell * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {

[obj cellOffset];

}];


16.runtime 或者属性

// 获取对象里的属性列表

objc_property_t * properties = class_copyPropertyList([instance

class], &outCount);

for (i = 0; i < outCount; i++) {

objc_property_t property =properties[i];

//  属性名转成字符串

NSString *propertyName = [[NSString alloc] initWithCString:property_getName(property) encoding:NSUTF8StringEncoding];

// 判断该属性是否存在

if ([propertyName isEqualToString:verifyPropertyName]) {

free(properties);

return YES;

}

}

free(properties);


17.如何获取app  网页JS代码  command+,  进入偏好设置,  高级打开菜单栏,然后safafi 开发-simulate-选择你想要的。


18.一些干货推荐

(1)图片大全

http://findicons.com/

http://www.easyicon.net/

(2)大牛blog

博客地址 RSS地址

OneV's Den http://onevcat.com/atom.xml

破船之家 http://beyondvincent.com/atom.xml

NSHipster http://nshipster.cn/feed.xml

Limboy 无网不剩 http://feeds.feedburner.com/lzyy

唐巧的技术博客 http://blog.devtang.com/atom.xml

Lex Tang http://lexrus.com/feed.xml

念茜的博客 http://nianxi.net/feed.xml

Xcode Dev http://blog.xcodev.com/atom.xml

Ted's Homepage http://wufawei.com/feed

txx's blog http://blog.t-xx.me/atom.xml

Kevin Blog http://zhowkev.in/rss

阿毛的蛋疼地 http://www.xiangwangfeng.com/atom.xml

亚庆的 Blog http://billwang1990.github.io/atom.xml

Nonomori http://nonomori.farbox.com/feed

言无不尽 http://tang3w.com/atom.xml

Wonderffee's Blog http://wonderffee.github.io/atom.xml

I'm TualatriX http://imtx.me/feed/latest/

Cocoabit http://blog.cocoabit.com/atom.xml

nixzhu on scriptogr.am http://nixzhu.me/feed

不会开机的男孩 http://studentdeng.github.io/atom.xml

Nico http://blog.inico.me/atom.xml

阿峰的技术窝窝 http://hufeng825.github.io/atom.xml

answer_huang http://answerhuang.duapp.com/index.php/feed/

webfrogs http://blog.nswebfrog.com/feed/

代码手工艺人 http://joeyio.com/atom.xml

Lancy's Blog http://gracelancy.com/atom.xml

I'm Allen http://www.imallen.com/atom.xml

Travis' Blog http://imi.im/feed

王中周的技术博客 http://wangzz.github.io/atom.xml

会写代码的猪 http://gaosboy.com/feed/atom/

克伟的博客 http://feed.cnblogs.com/blog/u/23857/rss

摇滚诗人 http://feed.cnblogs.com/blog/u/35410/rss

Luke's Homepage http://geeklu.com/feed/

萧宸宇 http://iiiyu.com/atom.xml

Yuan博客 http://www.heyuan110.com/?feed=rss2

Shining IO http://shiningio.com/atom.xml

YIFEIYANG--易飞扬的博客 http://www.yifeiyang.net/feed

KooFrank's Blog http://koofrank.com/rss

hello it works http://helloitworks.com/feed

码农人生 http://msching.github.io/atom.xml

玉令天下的Blog http://yulingtianxia.com/atom.xml

不掏蜂窝的熊 http://www.hotobear.com/?feed=rss2

猫·仁波切 https://andelf.github.io/atom.xml

煲仔饭 http://ivoryxiong.org/feed.xml

里脊串的开发随笔 http://adad184.com/atom.xml

Chun Tips http://chun.tips/atom.xml

Why's blog - 汪海的实验室 http://blog.callmewhy.com/atom.xml

Kenshin Cui's Blog http://www.cnblogs.com/kenshincui/rss

技术哥的博客 http://suenblog.duapp.com/rss/

(3)很多优秀的第三方库

http://blog.csdn.net/yipanbo/article/details/40047735

(4)swift 学习

http://wiki.jikexueyuan.com/project/swift/

http://www.ioscookies.com  三方插件

19 tableViewCell  

UITableViewCell分割线左边部分缺少一些的解决方法

-(void)viewDidLayoutSubviews {

if ([self.mytableview respondsToSelector:@selector(setSeparatorInset:)]) {

[self.mytableview setSeparatorInset:UIEdgeInsetsZero];

}

if ([self.mytableview respondsToSelector:@selector(setLayoutMargins:)])  {

[self.mytableview setLayoutMargins:UIEdgeInsetsZero];

}

}

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPat{

if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {

[cell setLayoutMargins:UIEdgeInsetsZero];

}

if ([cell respondsToSelector:@selector(setSeparatorInset:)]){

[cell setSeparatorInset:UIEdgeInsetsZero];

}

}


20 UIButton怎样去掉高亮透明效果

- (void)setHighlighted:(BOOL)highlighted{

}

self.btn_loginNow.adjustsImageWhenDisabled = NO;

self.btn_loginNow.adjustsImageWhenHighlighted = NO;


21 报错clang

这个错误一定是有重复的类,或者属性 比如使用了 const

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容