textview换行之后位置问题

[复制链接]
179 14



为什么换行的时候位置往上移了一下啊。。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

举报 使用道具

回复

14 个评论

hades  新手上路  发表于 2018-5-31 23:33:13  | 显示全部楼层
刚刚自己写的一个小demo view向上偏移那里有点问题  你看看textViewDidChange那里要计算高度

然后用[UIView animateWithDuration:0.25 animations:]动画来写会流畅 不然会卡顿

举报 使用道具

回复
simon_mai  新手上路  发表于 2018-6-1 00:20:44  | 显示全部楼层
有问题啊,还是不行额

举报 使用道具

回复
gtshijun  新手上路  发表于 2018-6-1 01:29:43  | 显示全部楼层



为什么换行的时候位置往上移了一下啊。。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

举报 使用道具

回复
chance  新手上路  发表于 2018-6-1 01:34:54  | 显示全部楼层
为啥我这样写了还是不行

举报 使用道具

回复
w540999  新手上路  发表于 2018-6-1 02:59:53  | 显示全部楼层
我那里也有问题 能找到问题就好了

举报 使用道具

回复
badbanny  新手上路  发表于 2018-6-1 03:07:41  | 显示全部楼层
用kvo
[writeView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:nil];


- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    UITextView * view =(UITextView *)object;
    if ([keyPath isEqualToString:@"contentSize"]) {
        writeView.frame = CGRectMake(15, 10, SCREEN_WIDTH -100,view.contentSize.height );
    }
}

举报 使用道具

回复
辉哥  新手上路  发表于 2018-6-1 03:33:30  | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

举报 使用道具

回复
2563616  新手上路  发表于 2018-6-1 04:01:11  | 显示全部楼层
你textViewDidChange方法里面怎么写的 贴出来

举报 使用道具

回复
cdesignf1  新手上路  发表于 2018-6-1 05:57:41  | 显示全部楼层
使用KVO 包括粘贴复制
[textView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:nil];

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
    if ([keyPath isEqualToString:@"contentSize"]) {
        // 最大高度为6行
        CGFloat max_height = ceil(_inputTextView.font.lineHeight * 6 + _inputTextView.textContainerInset.top + _inputTextView.textContainerInset.bottom);
        CGRect frame = _inputTextView.frame;
        CGSize newSize = [change[NSKeyValueChangeNewKey] CGSizeValue];
        NSLog(@"contentSize = %@", NSStringFromCGSize(newSize));
        
        // 初始高度36
        CGFloat minH = fmin(36, frame.size.height);
        if (newSize.height < minH) {
            newSize.height = minH;
        } else {
            newSize.height = fmin(newSize.height, max_height);
        }
        
        _inputTextView.frame = CGRectMake(frame.origin.x, frame.origin.y, frame.size.width, newSize.height);
    }
}

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

ios.irunthink.com
搜索
热搜: iOS swift 下拉刷新

图文热点

更多

开发教程

更多

客服中心

400-800 周一至周日 9:30-17:30 仅收市话费

关注我们

  • 微信扫描
  • 关注微信
关于我们
关于我们
友情链接
联系我们
帮助中心
精贴推荐
源码上传
注册登录
服务支持
资源下载
关注我们
官方微博
官方空间
快速回复 返回顶部 返回列表