笔记

2017-02-05  本文已影响18人  想聽丿伱說衹愛我
  1. 可获得CGRectMake(0, 0, 200, 999) 条件下的label的rect
CGRect rectOfText = [self.popLabel textRectForBounds:CGRectMake(0, 0, 200, 999) limitedToNumberOfLines:0];

2.可在imageview的frame的基础下拉伸图片

self.imageview.image =  [[UIImage imageNamed:@"SenderTextNodeBkg"] resizableImageWithCapInsets:UIEdgeInsetsMake(10, 10, 10, 10)];//拉伸图片
例子为上下左右都向里压缩10像素

3.键盘显示与收回时的通知

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyBoardWillShow:) name:UIKeyboardWillShowNotification object:nil];
 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyBoardWillHide:) name:UIKeyboardWillHideNotification object:nil];
-(void)keyBoardWillShow:(NSNotification*)notification
{
    CGRect keyboardFrame = [notification.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];
    
    NSTimeInterval duration = [notification.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue];
    UIViewAnimationOptions option = [notification.userInfo[UIKeyboardAnimationCurveUserInfoKey] intValue];
    CGFloat keyboard_H = keyboardFrame.size.height;
    __weak typeof(self)  weakself = self;
    
    [UIView animateWithDuration:duration delay:0 options:option animations:^{
        //上移键盘高度
        weakself.chat_Tabv.frame = CGRectMake(0, 64-keyboard_H, iphone_w, iphone_h-64-tool_h);
        weakself.chat_ToolV.frame = CGRectMake(0, iphone_h-tool_h-keyboard_H, iphone_w, tool_h);
    } completion:^(BOOL finished) {

    }];
    
}

4.tableview中插入行与数据

[self.chat_Tabv insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationBottom];
调用后会自动调用一次heightForRow和CellForRow

5.tableView自动滑动到某一行

[self.chat_Tabv scrollToRowAtIndexPath:lastIndexPath atScrollPosition:UITableViewScrollPositionBottom animated:NO];

6.获取某字符串在text中的range

[text rangeOfString:@"张三睡得正香"]

7.获取字符串的高度与宽度

NSDictionary *dic = @{NSFontAttributeName:[UIFont systemFontOfSize:font]};
    CGSize size = CGSizeMake(width, CGFLOAT_MAX);
    CGRect rect = [text boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil];

8.bringSubviewToFront 和 sendSubviewToBack

将一个UIView显示在最前面只需要调用其父视图的 bringSubviewToFront()方法。
将一个UIView层推送到背后只需要调用其父视图的 sendSubviewToBack()方法。
用第二层子视图 换 第一层子视图的位置  self.view是第0层
[self.view exchangeSubviewAtIndex:1 withSubviewAtIndex:2];

5.tableView自动滑动到某一行

上一篇下一篇

猜你喜欢

热点阅读