技术存本

1.UITableView算高度

UITableView算高度最好不要用以下2行代码自动撑高度, iOS9.0上reloadData后,tableview会滚到顶部

rowHeight = UITableViewAutomaticDimension;
estimatedRowHeight = xxx

2.UIKeyboardWillShowNotification 通知获取键盘高度

    CGRect keyboardEndFrame = [noti.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];

系统自带键盘回调一次
搜狗键盘回调3次 键盘高度分别是 0 , 226, 292,如果进行动画可能发生跳动

2.FLEXBOX布局

属性定义了子视图的主轴方向 column:是上下   row:左右
flexDirection: column, row, column-reverse, row-reverse

属性定义了子视图在主轴上的对齐方式
justifyContent: flex-start | flex-end | center | space-between | space-around | space-evenly

属性定义项目在交叉轴上的对齐方式
alignItems: flex-start | flex-end | center | baseline | stretch

3.真机调试包地址

https://github.com/iGhibli/iOS-DeviceSupport/tree/master/DeviceSupport

4 TextView 相关

去除 textView 左右边距:

self.textView.textContainer.lineFragmentPadding = 0;

去除 textView 上下边距:

self.textView.textContainerInset = UIEdgeInsetsZero;

判断输入是否有高亮部分

  UITextRange *selectedRange = [textView markedTextRange];
    //获取高亮部分
    UITextPosition *position = [textView   positionFromPosition:selectedRange.start offset:0];
    // 如果在变化中是高亮部分在变,就不要计算字符了
    if (!(selectedRange && position)) {
             // 输入完成
    }

5 TextFiled 相关

自定义占位符颜色

- (void)drawPlaceholderInRect:(CGRect)rect {
    // 先计算size
    CGSize size = [self.placeholder sizeWithAttributes:@{NSFontAttributeName : self.font}];
    [self.placeholder drawInRect:CGRectMake(0, (rect.size.height - size.height) / 2.0, rect.size.width, rect.size.height)
                  withAttributes:@{NSForegroundColorAttributeName : self.placeholderColor, NSFontAttributeName : self.font}];
}

你可能感兴趣的:(技术存本)