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>


0 0
原创粉丝点击