IOS 开发过程中问题汇总
来源:互联网 发布:云播软件 编辑:程序博客网 时间:2024/06/05 21:55
IOS 开发过程中问题汇总
1-调用打电话方法
1> 直接跳转到打电话页面 __拨打完电话回不到原来的应用,会停留在通讯录里,而且是直接拨打,不弹出提示
<code class="hljs lua has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;"><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@“tel://%@",@"4001588168"]]</span>];</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>
2> 自动弹出提示选择后跳转到打电话页面 _ 会回去到原来的程序里(注意这里的telprompt),也会弹出提示 (可能会被拒)
<code class="hljs objectivec has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;"><span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSString</span> *telNumber = [<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSString</span> stringWithFormat:@<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"telprompt://%@"</span>,<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">self</span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.telePhoneNum</span>];</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>
3>这种方法,打完电话后还会回到原来的程序,也会弹出提示,推荐这种
<code class="hljs objectivec has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;"><span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSMutableString</span> * str=[[<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSMutableString</span> alloc] initWithFormat:@<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"tel:%@"</span>,@<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"186xxxx6979"</span>]; <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">UIWebView</span> * callWebview = [[<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">UIWebView</span> alloc] init]; [callWebview loadRequest:[<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSURLRequest</span> requestWithURL:[<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSURL</span> URLWithString:str]]];</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul>
2、UIButton 按钮上得字左对齐
titleEdgeInsets应该是最好的方法,如果只是简单的左对齐,也可以如下方法。
<code class="hljs fix has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;"><span class="hljs-attribute" style="box-sizing: border-box;">btn.contentHorizontalAlignment </span>=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;"> UIControlContentHorizontalAlignmentLeft;</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>
3、把字符串中的图片地址转换到数组中
<code class="hljs objectivec has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">- (<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSArray</span>*)getImgArrFromImgStr:(<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSString</span>*)imgStr{ <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span> [imgStr componentsSeparatedByString:@<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">","</span>];}</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li></ul>
4、把视图添加到键盘上
<code class="hljs 1c has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">for(UIView *window in [UIApplication sharedApplication].windows) { if ([window isKindOfClass:NSClassFromString(@“UIRemoteKeyboardWindow<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">")]) {</span> [window addSubview:_doneInKeyboardButton]; }}- (void)registerForKeyboardNotifications { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasShown:) name:UIKeyboardWillShowNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasHidden:) name:UIKeyboardWillHideNotification object:nil];}- (void) keyboardWasShown:(NSNotification *) notification{ <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// NSNotification中的 userInfo字典中包含键盘的位置和大小等信息</span> NSDictionary *userInfo = [notification userInfo]; <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// UIKeyboardAnimationDurationUserInfoKey 对应键盘弹出的动画时间</span> CGFloat animationDuration = [[userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue]; <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// UIKeyboardAnimationCurveUserInfoKey 对应键盘弹出的动画类型</span> NSInteger animationCurve = [[userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey] integerValue]; <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//数字彩,数字键盘添加“完成”按钮</span> if (_doneInKeyboardButton){ [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:animationDuration];<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//设置添加按钮的动画时间</span> [UIView setAnimationCurve:(UIViewAnimationCurve)animationCurve];<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//设置添加按钮的动画类型</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//设置自定制按钮的添加位置(这里为数字键盘添加“完成”按钮)</span> _doneInKeyboardButton.transform=CGAffineTransformTranslate(_doneInKeyboardButton.transform, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, -<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">53</span>); [UIView commitAnimations]; }}- (void) keyboardWasHidden:(NSNotification *)notification { <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// NSNotification中的 userInfo字典中包含键盘的位置和大小等信息</span> NSDictionary *userInfo = [notification userInfo]; <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// UIKeyboardAnimationDurationUserInfoKey 对应键盘收起的动画时间</span> CGFloat animationDuration = [[userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue]/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span>; if (_doneInKeyboardButton.superview) { [UIView animateWithDuration:animationDuration animations:^{ <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//动画内容,将自定制按钮移回初始位置</span> _doneInKeyboardButton.transform=CGAffineTransformIdentity; } completion:^(BOOL finished) { <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//动画结束后移除自定制的按钮</span> [_doneInKeyboardButton removeFromSuperview]; }]; }}- (void)configDoneInKeyBoardButton { CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height; <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//初始化</span> if (_doneInKeyboardButton == nil) { UIButton *doneInKeyboardButton = [UIButton buttonWithType:UIButtonTypeCustom]; [doneInKeyboardButton setTitle:@<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"·"</span> forState:UIControlStateNormal]; [doneInKeyboardButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; doneInKeyboardButton.backgroundColor = [UIColor clearColor]; doneInKeyboardButton.frame = CGRectMake(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, screenHeight, (KScreenW - <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>)/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">53</span>); doneInKeyboardButton.titleLabel.font = [UIFont systemFontOfSize:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">35</span>]; doneInKeyboardButton.adjustsImageWhenHighlighted = NO; [doneInKeyboardButton addTarget:self action:@selector(finishAction) forControlEvents:UIControlEventTouchUpInside]; _doneInKeyboardButton = doneInKeyboardButton; } <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//每次必须从新设定“小数点”按钮的初始化坐标位置</span> _doneInKeyboardButton.frame = CGRectMake(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, screenHeight, (KScreenW - <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>)/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">53</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//由于ios8下,键盘所在的window视图还没有初始化完成,调用在下一次 runloop 下获得键盘所在的window视图</span> [self performSelector:@selector(addDoneButton) withObject:nil afterDelay:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0.0</span>f];}<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma mark - 添加小数点按钮</span>- (void)addDoneButton{ <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//获得键盘所在的window视图,直接加到window上</span> for(UIView *window in [UIApplication sharedApplication].windows) { if([window isKindOfClass:NSClassFromString(@<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"UIRemoteKeyboardWindow"</span>)]) { [window addSubview:_doneInKeyboardButton]; } }}<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma mark - 点击“小数点”按钮事件</span>-(void)finishAction { _czNumTF.text = [NSString stringWithFormat:@<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"%@."</span>,_czNumTF.text];}</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li><li style="box-sizing: border-box; padding: 0px 5px;">53</li><li style="box-sizing: border-box; padding: 0px 5px;">54</li><li style="box-sizing: border-box; padding: 0px 5px;">55</li><li style="box-sizing: border-box; padding: 0px 5px;">56</li><li style="box-sizing: border-box; padding: 0px 5px;">57</li><li style="box-sizing: border-box; padding: 0px 5px;">58</li><li style="box-sizing: border-box; padding: 0px 5px;">59</li><li style="box-sizing: border-box; padding: 0px 5px;">60</li><li style="box-sizing: border-box; padding: 0px 5px;">61</li><li style="box-sizing: border-box; padding: 0px 5px;">62</li><li style="box-sizing: border-box; padding: 0px 5px;">63</li><li style="box-sizing: border-box; padding: 0px 5px;">64</li><li style="box-sizing: border-box; padding: 0px 5px;">65</li><li style="box-sizing: border-box; padding: 0px 5px;">66</li><li style="box-sizing: border-box; padding: 0px 5px;">67</li><li style="box-sizing: border-box; padding: 0px 5px;">68</li><li style="box-sizing: border-box; padding: 0px 5px;">69</li><li style="box-sizing: border-box; padding: 0px 5px;">70</li><li style="box-sizing: border-box; padding: 0px 5px;">71</li><li style="box-sizing: border-box; padding: 0px 5px;">72</li><li style="box-sizing: border-box; padding: 0px 5px;">73</li><li style="box-sizing: border-box; padding: 0px 5px;">74</li><li style="box-sizing: border-box; padding: 0px 5px;">75</li><li style="box-sizing: border-box; padding: 0px 5px;">76</li><li style="box-sizing: border-box; padding: 0px 5px;">77</li><li style="box-sizing: border-box; padding: 0px 5px;">78</li><li style="box-sizing: border-box; padding: 0px 5px;">79</li><li style="box-sizing: border-box; padding: 0px 5px;">80</li><li style="box-sizing: border-box; padding: 0px 5px;">81</li><li style="box-sizing: border-box; padding: 0px 5px;">82</li><li style="box-sizing: border-box; padding: 0px 5px;">83</li><li style="box-sizing: border-box; padding: 0px 5px;">84</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li><li style="box-sizing: border-box; padding: 0px 5px;">53</li><li style="box-sizing: border-box; padding: 0px 5px;">54</li><li style="box-sizing: border-box; padding: 0px 5px;">55</li><li style="box-sizing: border-box; padding: 0px 5px;">56</li><li style="box-sizing: border-box; padding: 0px 5px;">57</li><li style="box-sizing: border-box; padding: 0px 5px;">58</li><li style="box-sizing: border-box; padding: 0px 5px;">59</li><li style="box-sizing: border-box; padding: 0px 5px;">60</li><li style="box-sizing: border-box; padding: 0px 5px;">61</li><li style="box-sizing: border-box; padding: 0px 5px;">62</li><li style="box-sizing: border-box; padding: 0px 5px;">63</li><li style="box-sizing: border-box; padding: 0px 5px;">64</li><li style="box-sizing: border-box; padding: 0px 5px;">65</li><li style="box-sizing: border-box; padding: 0px 5px;">66</li><li style="box-sizing: border-box; padding: 0px 5px;">67</li><li style="box-sizing: border-box; padding: 0px 5px;">68</li><li style="box-sizing: border-box; padding: 0px 5px;">69</li><li style="box-sizing: border-box; padding: 0px 5px;">70</li><li style="box-sizing: border-box; padding: 0px 5px;">71</li><li style="box-sizing: border-box; padding: 0px 5px;">72</li><li style="box-sizing: border-box; padding: 0px 5px;">73</li><li style="box-sizing: border-box; padding: 0px 5px;">74</li><li style="box-sizing: border-box; padding: 0px 5px;">75</li><li style="box-sizing: border-box; padding: 0px 5px;">76</li><li style="box-sizing: border-box; padding: 0px 5px;">77</li><li style="box-sizing: border-box; padding: 0px 5px;">78</li><li style="box-sizing: border-box; padding: 0px 5px;">79</li><li style="box-sizing: border-box; padding: 0px 5px;">80</li><li style="box-sizing: border-box; padding: 0px 5px;">81</li><li style="box-sizing: border-box; padding: 0px 5px;">82</li><li style="box-sizing: border-box; padding: 0px 5px;">83</li><li style="box-sizing: border-box; padding: 0px 5px;">84</li></ul>
5、UILabel的自适应
5.1、UILabel的宽度自适应
<code class="hljs has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">adjustsFontSizeToFitWidth</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>
5.2、UILabel的高度自适应
<code class="hljs http has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;"><span class="hljs-attribute" style="box-sizing: border-box;">boundingRectWithSize</span>: <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">options: attributes: context:</span><span class="hljs-attribute" style="box-sizing: border-box;">sizeThatFits:</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li></ul>
6、UITextField 的 placeholder的颜色改变
<code class="hljs objectivec has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;"> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//第一种</span><span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">UIColor</span> *color = [<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">UIColor</span> whiteColor]; _userName<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.attributedPlaceholder</span> = [[NSAttributedString alloc] initWithString:@<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"用户名"</span> attributes:@{NSForegroundColorAttributeName: color}]; <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//第二种 </span>[_userName setValue:[<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">UIColor</span> whiteColor] forKeyPath:@<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"_placeholderLabel.textColor"</span>]; </code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li></ul>
7、保存图片到相册
<code class="hljs objectivec has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">- (<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">IBAction</span>)saveImageToAlbum:(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">id</span>)sender { UIImageWriteToSavedPhotosAlbum(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">self</span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.imageView</span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.image</span>, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">self</span>, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">@selector</span>(imageSavedToPhotosAlbum:didFinishSavingWithError:contextInfo:), <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">nil</span>);}- (<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span>)imageSavedToPhotosAlbum:(<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">UIImage</span> *)image didFinishSavingWithError:(<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSError</span> *)error contextInfo:(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span> *)contextInfo { <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSString</span> *message = @<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"呵呵"</span>; <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> (!error) { message = @<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"成功保存到相册"</span>; }<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">else</span> { message = [error description]; } <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSLog</span>(@<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"message is %@"</span>,message);}</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li></ul>
8、edgesForExtendedLayout
edgesForExtendedLayout是一个类型为UIExtendedEdge的属性,指定边缘要延伸的方向。
因为iOS7鼓励全屏布局,它的默认值很自然地是UIRectEdgeAll,四周边缘均延伸,就是说,如果即使视图中上有navigationBar,下有tabBar,那么视图仍会延伸覆盖到四周的区域。
9、 automaticallyAdjustsScrollViewInsets
当 automaticallyAdjustsScrollViewInsets 为 NO 时,tableview 是从屏幕的最上边开始,也就是被 导航栏 & 状态栏覆盖。 当 automaticallyAdjustsScrollViewInsets 为 YES 时,也是默认行为,表现就比较正常了,和edgesForExtendedLayout = UIRectEdgeNone 有啥区别? 不注意可能很难觉察, automaticallyAdjustsScrollViewInsets 为YES 时,tableView 上下滑动时,是可以穿过导航栏&状态栏的,在他们下面有淡淡的浅浅红色
10、extendedLayoutIncludesOpaqueBars
首先看下官方解释,默认 NO, 但是Bar 的默认属性是透明的。。。也就是说只有在不透明下才有用但是,测试结果很软肋,基本区别不大。。。但是对于解决一些Bug 是还是起作用的,比如说SearchBar的跳动问题,详情见:http://www.cnblogs.com/skyming/p/4059128.html, 其他UITableView,UIScrollView 位置的问题多数和这3属性相关。
11、正则表达式的用法
<code class="hljs tex has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">//电话号码NSString *telPattern = @"<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>d<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">{</span>3,4<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">}</span>-)<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>d<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">{</span>7,8<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">}</span><span class="hljs-formula" style="box-sizing: border-box; background-color: rgb(238, 238, 238); font-style: italic;">$";//手机号码NSString *phonePattern = @"^1(3<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>0-9<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span>|5<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>0-35-9<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span>|8<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>025-9<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span>)<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>d<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">{</span>8<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">}</span>$</span>";//QQ号码NSString *QQPattern = @"^<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>1-9<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span><span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>d<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>4,10<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span><span class="hljs-formula" style="box-sizing: border-box; background-color: rgb(238, 238, 238); font-style: italic;">$";//邮箱地址NSString *mailPattern = @"^<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>w+(<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>-+.<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span><span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>w+)*@<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>w+(<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>-.<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span><span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>w+)*<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>.<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>w+(<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>-.<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span><span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>w+)*$</span>";//URL网址NSString *urlPattern = @"((http<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>s<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span><span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">{</span>0,1<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">}</span>|ftp)://<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>a-zA-Z0-9<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>.<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>-<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span>+<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>.(<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>a-zA-Z<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span><span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">{</span>2,4<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">}</span>)(:<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>d+)?(/<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>a-zA-Z0-9<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>.<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>-<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">~</span>!@<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">#</span><span class="hljs-formula" style="box-sizing: border-box; background-color: rgb(238, 238, 238); font-style: italic;">$%^<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">&</span>*+?:_/=<><span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span>*)?)|(www.<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>a-zA-Z0-9<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>.<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>-<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span>+<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>.(<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>a-zA-Z<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span><span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">{</span>2,4<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">}</span>)(:<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>d+)?(/<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>a-zA-Z0-9<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>.<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>-<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">~</span>!@<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">#</span>$</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">%^&*+?:_/=<>]*)?)";</span>//身份证号码NSString *IDCardPattern = @"<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>d<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">{</span>14<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">}</span><span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span><span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>0-9<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span>,0-9xX<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span>";//数字和字母NSString *numCharacterPattern = @"^<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>A-Za-z0-9<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span>+<span class="hljs-formula" style="box-sizing: border-box; background-color: rgb(238, 238, 238); font-style: italic;">$";//整数和小数NSString *allNumPattern = @"^<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>0-9<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span>+(<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>.<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span><span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">{</span>0,1<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">}</span><span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>0-9<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span>+)<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">{</span>0,1<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">}</span>$</span>";//汉字NSString *hansPattern = @"^<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span><span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\u</span>4e00-<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\u</span>9fa5<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span><span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">{</span>0,<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">}</span><span class="hljs-formula" style="box-sizing: border-box; background-color: rgb(238, 238, 238); font-style: italic;">$";//iP地址NSString *ipPattern = @“((2<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>0-4<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span><span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>d|25<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>0-5<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span>|<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>01<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span>?<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>d<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>d?)<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>.)<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">{</span>3<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">}</span>(2<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>0-4<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span><span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>d|25<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>0-5<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span>|<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>01<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span>?<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>d<span class="hljs-command" style="box-sizing: border-box; color: rgb(0, 0, 136);">\\</span>d?)";NSString *pattern = <span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>NSString stringWithFormat:@“%@|%@|%@|%@|%@|%@|%@|%@|%@|%@",telPattern,phonePattern,QQPattern,mailPattern,urlPattern,IDCardPattern,numCharacterPattern,allNumPattern,hansPattern,ipPattern<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span>;NSRegularExpression *reges = <span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span><span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>NSRegularExpression alloc<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span> initWithPattern:pattern options:0 error:nil<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span>;NSString *str = @“————“;NSArray *results = <span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>reges matchesInString:str options:0 range:NSMakeRange(0, str.length)<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span>;for (NSTextCheckingResult *result in results) <span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">{</span> NSLog(@"%@ %@",NSStringFromRange(result.range),<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">[</span>str substringWithRange:result.range<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">]</span>);<span class="hljs-special" style="box-sizing: border-box; color: rgb(102, 102, 0);">}</span></span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li></ul>
12、数组排序
<code class="hljs objectivec has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;"><span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSArray</span> *array = [<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSArray</span> array]; [array sortedArrayUsingComparator:^NSComparisonResult(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">id</span> obj1, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">id</span> obj2) { <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> (obj1 > obj2) { <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span> NSOrderedAscending;<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//升序</span> } <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span> NSOrderedDescending;<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//降序</span> }];</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li></ul>
13、Iphone 各版本的尺寸,分辨率
<code class="hljs has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">3.5英寸——Iphone5 : 320 x 480 640 x 9604.0英寸——Iphone5s : 320 x 568 640 x 11364.7英寸——Iphone6 : 375 x 667 750 x 13345.5英寸——Iphone6 plus : 414 x 736 1080 x 1920</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li></ul>
14、将项目的.svn全部删除
<code class="hljs lasso has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">打开终端,进入项目所在的文件夹:使用命令find <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">.</span> <span class="hljs-attribute" style="box-sizing: border-box;">-type</span> d <span class="hljs-attribute" style="box-sizing: border-box;">-name</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">".svn"</span> <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">|</span>xargs rm <span class="hljs-attribute" style="box-sizing: border-box;">-rvf</span>就可将项目的<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">.</span>svn全部删除;</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>
15、根据value快速查找数组中的模型(谓词)
<code class="hljs ocaml has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">NSPredicate *predicate = [NSPredicate predicateWithFormat:@<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"key = %@"</span>,<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">value</span>]; NSArray *<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">array</span> = [modelArray filteredArrayUsingPredicate:predicate];</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li></ul>
16、图片的拉伸
<code class="hljs mel has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">image</span>= [<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">image</span> stretchableImageWithLeftCapWidth:<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">image</span>.<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">size</span>.width * <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0.5</span> topCapHeight:<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">image</span>.<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">size</span>.height * <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0.5</span>];</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>
17、修改字间距
<code class="hljs mel has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">NSMutableAttributedString <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">*attr</span> = [[NSMutableAttributedString alloc] initWithString:<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">textField</span>.<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">text</span>]; [attr addAttribute:NSKernAttributeName value:[NSNumber numberWithFloat:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4.0</span>] range:NSMakeRange(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">textField</span>.<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">text</span>.length)]; <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">textField</span>.attributedText = attr;</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul>
18、研究富文本AttributedString
<code class="hljs erlang-repl has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;"><span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">1> </span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSFontAttributeName</span> 设置字体属性,默认值:字体:<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">Helvetica</span>(<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">Neue</span>) 字号:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">12</span><span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">2> </span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSForegroundColorAttributeName</span> 设置字体颜色,取值为 <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">UIColor</span>对象,默认值为黑色<span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">3> </span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSBackgroundColorAttributeName</span> 设置字体所在区域背景颜色,取值为 <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">UIColor</span>对象,默认值为<span class="hljs-function_or_atom" style="box-sizing: border-box;">nil</span>, 透明色<span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">4> </span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSLigatureAttributeName</span> 设置连体属性,取值为<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSNumber</span> 对象(整数),<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span> 表示没有连体字符,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> 表示使用默认的连体字符<span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">5> </span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSKernAttributeName</span> 设定字符间距,取值为 <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSNumber</span> 对象(整数),正值间距加宽,负值间距变窄<span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">6> </span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSStrikethroughStyleAttributeName</span> 设置删除线,取值为 <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSNumber</span> 对象(整数)<span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">7> </span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSStrikethroughColorAttributeName</span> 设置删除线颜色,取值为 <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">UIColor</span> 对象,默认值为黑色——设置中划线 [<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSNumber</span> <span class="hljs-function_or_atom" style="box-sizing: border-box;">numberWithInteger</span>:<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSUnderlineStyleSingle</span>]<span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">8> </span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSUnderlineStyleAttributeName</span> 设置下划线,取值为 <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSNumber</span> 对象(整数),枚举常量 <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSUnderlineStyle</span>中的值,与删除线类似<span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">9> </span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSUnderlineColorAttributeName</span> 设置下划线颜色,取值为 <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">UIColor</span> 对象,默认值为黑色<span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">10> </span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSStrokeWidthAttributeName</span> 设置笔画宽度,取值为 <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSNumber</span> 对象(整数),负值填充效果,正值中空效果<span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">11> </span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSStrokeColorAttributeName</span> 填充部分颜色,不是字体颜色,取值为 <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">UIColor</span> 对象<span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">12> </span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSShadowAttributeName</span> 设置阴影属性,取值为 <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSShadow</span> 对象<span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">13> </span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSTextEffectAttributeName</span> 设置文本特殊效果,取值为 <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSString</span> 对象,目前只有图版印刷效果可用:<span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">14> </span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSBaselineOffsetAttributeName</span> 设置基线偏移值,取值为 <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSNumber</span> (<span class="hljs-function_or_atom" style="box-sizing: border-box;">float</span>),正值上偏,负值下偏<span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">15> </span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSObliquenessAttributeName</span> 设置字形倾斜度,取值为 <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSNumber</span> (<span class="hljs-function_or_atom" style="box-sizing: border-box;">float</span>),正值右倾,负值左倾<span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">16> </span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSExpansionAttributeName</span> 设置文本横向拉伸属性,取值为 <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSNumber</span> (<span class="hljs-function_or_atom" style="box-sizing: border-box;">float</span>),正值横向拉伸文本,负值横向压缩文本<span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">17> </span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSWritingDirectionAttributeName</span> 设置文字书写方向,从左向右书写或者从右向左书写<span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">18> </span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSVerticalGlyphFormAttributeName</span> 设置文字排版方向,取值为 <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSNumber</span> 对象(整数),<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span> 表示横排文本,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> 表示竖排文本<span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">19> </span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSLinkAttributeName</span> 设置链接属性,点击后调用浏览器打开指定<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">URL</span>地址<span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">20> </span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSAttachmentAttributeName</span> 设置文本附件,取值为<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSTextAttachment</span>对象,常用于文字图片混排<span class="hljs-prompt" style="color: rgb(0, 102, 102); box-sizing: border-box;">21> </span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSParagraphStyleAttributeName</span> 设置文本段落排版格式,取值为 <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSParagraphStyle</span> 对象</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li></ul>
19、解决UITableView分割线显示不全,左边有一段缺失
<code class="hljs objectivec has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;"><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//下面code 可以解决</span>- (<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span>)viewDidLayoutSubviews { <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> ([<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">self</span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.tableView</span> respondsToSelector:<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">@selector</span>(setSeparatorInset:)]) { [<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">self</span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.tableView</span> setSeparatorInset:UIEdgeInsetsZero]; } <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> ([<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">self</span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.tableView</span> respondsToSelector:<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">@selector</span>(setLayoutMargins:)]) { [<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">self</span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.tableView</span> setLayoutMargins:UIEdgeInsetsZero]; }}- (<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span>)tableView:(<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">UITableView</span> *)tableView willDisplayCell:(<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">UITableViewCell</span> *)cell forRowAtIndexPath:(<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSIndexPath</span> *)indexPat{ <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> ([cell respondsToSelector:<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">@selector</span>(setLayoutMargins:)]) { [cell setLayoutMargins:UIEdgeInsetsZero]; } <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> ([cell respondsToSelector:<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">@selector</span>(setSeparatorInset:)]){ [cell setSeparatorInset:UIEdgeInsetsZero]; } }</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li></ul>
20、UITableView的row少时没有数据的cell显示分割线的问题
<code class="hljs lua has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">[tableView setTableFooterView:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">[[UIView alloc] initWithFrame:CGRectZero]]</span>;</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>
21、UILabel的文字左右对齐
<code class="hljs objectivec has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">- (<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span>)conversionCharacterInterval:(<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSInteger</span>)maxInteger current:(<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSString</span> *)currentString withLabel:(<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">UILabel</span> *)label{ <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">CGRect</span> rect = [[currentString substringToIndex:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>] boundingRectWithSize:CGSizeMake(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">200</span>,label<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.frame</span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.size</span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.height</span>) options:NSStringDrawingUsesLineFragmentOrigin |NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName: label<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.font</span>} context:<span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">nil</span>]; NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:currentString]; <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">float</span> strLength = [<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">self</span> getLengthOfString:currentString]; [attrString addAttribute:NSKernAttributeName value:@(((maxInteger - strLength) * rect<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.size</span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.width</span>)/(strLength - <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>)) range:NSMakeRange(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, strLength)]; label<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.attributedText</span> = attrString;}- (<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">float</span>)getLengthOfString:(<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSString</span>*)str { <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">float</span> strLength = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>; <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">char</span> *p = (<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">char</span> *)[str cStringUsingEncoding:NSUnicodeStringEncoding]; <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> (<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSInteger</span> i = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span> ; i < [str lengthOfBytesUsingEncoding:NSUnicodeStringEncoding]; i++) { <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> (*p) { strLength++; } p++; } <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span> strLength/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>;}<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//注:中文字符长度1,英文字符及数字长度0.5</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li></ul><div class="save_code tracking-ad" data-mod="popu_249" style="box-sizing: border-box; position: absolute; height: 60px; right: 30px; top: 5px; color: rgb(255, 255, 255); cursor: pointer; z-index: 2;"><a target=_blank target="_blank" style="box-sizing: border-box; color: rgb(12, 137, 207);"><img src="http://static.blog.csdn.net/images/save_snippets.png" style="border: none; box-sizing: border-box;" alt="" /></a></div><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li></ul>
22、运行时runtime获取某个类的成员变量
<code class="hljs objectivec has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span> count = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>; Ivar *ivars = class_copyIvarList([UITextField class], &count); <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> (<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span> i = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>; i < count; i ++) { <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//取出成员变量</span> Ivar ivar = *(ivars + i); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//打印成员变量</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSLog</span>(@<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"%s"</span>,ivar_getName(ivar)); }</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li></ul>
23、cell自动计算高度
<code class="hljs avrasm has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;"><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>、首先的让cell的底部与挨着的子控件底部脱线建立关系;<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>、设置估算高度 self<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.tableView</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.estimatedRowHeight</span> = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">70</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span>、设置高度自动计算 self<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.tableView</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.rowHeight</span> = UITableViewAutomaticDimension<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul>
24、状态栏的样式
<code class="hljs objectivec has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">View controller-based status bar appearance 在info<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.plist</span>里边添加它, value为<span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">NO</span>,意思是说状态栏的样式更改不是基于控制器,而是由<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">UIApplication</span>决定;如果value=<span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">YES</span> 状态栏的样式有控制器决定。</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>
25、导航控制器左边缘右滑动实现返回功能
<code class="hljs oxygene has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">如果修改了nav的leftBarButtonItem就没有此功能,如果需要此功能可以设置<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">self</span>.interactivePopGestureRecognizer.<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">delegate</span> = <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">nil</span>;</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>
26、崩溃信息解析查找
<code class="hljs avrasm has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">先把xxx<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.app</span> 和 xxx<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.dSYM</span> 两个文件放在一个文件夹里,再根据crash的地址 ,用终端cd 到该文件夹,输入命令 atos -o xxx<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.app</span>/xxx -arch arm64 <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0x113313131003</span> 回车即可;</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>
- IOS 开发过程中问题汇总
- IOS 开发过程中问题汇总
- iOS 开发过程遇到的问题汇总
- IOS开发问题汇总
- IOS开发问题汇总
- IOS 开发问题汇总
- ios开发问题汇总
- iOS开发问题汇总
- ios开发过程中我遇到的疑问汇总
- iOS开发过程中遇到的问题
- android开发过程中遇到的一些问题汇总
- 开发过程中遇到的各种问题汇总
- web service 开发过程中遇到的问题汇总:
- IOS开发错误问题汇总(更新中)
- ios开发经典问题汇总
- ios开发经典问题汇总
- iOS开发中错误汇总
- iOS 开发中Bug汇总
- SlidingMenu侧滑菜单
- Java并发编程:线程池的使用
- Akka简单的性能测试
- 二维码
- Android Contentprovider 经验总结
- IOS 开发过程中问题汇总
- 项目之JSP标签定义时URI报错的问题(产品追溯系统)2016-7-29
- java??List?LinkedList?ArrayList ??
- IOS 个人苹果开发者账号申请流程
- OSG测试gl.h编译出错
- 【poj 3714 / hdu 1007 /uva 10245】经典题 平面上最近的点对
- Oracle连接类型
- 用户界面框架jQuery EasyUI示例大全之Tree
- jQuery动态添加.active属性实现按钮点击样式