找回密码
 立即注册
搜索

本文来自

iOS开发交流区

iOS开发交流区

人已关注

请添加对本版块的简短描述

textview换行之后位置问题

[复制链接]

1

主题

1

帖子

35

积分

新手上路

Rank: 1

积分
35
QQ
6014 2229958 发表于 2018-5-31 21:48:14



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

本帖子中包含更多资源

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

x




上一篇:iOS-----视频监控:新功能需要对讲,手机端录音pcm转g711a发送给服务端。 ...
下一篇:老哥们 CGFloat 能赋空值么
楼主热帖
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