首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UITextView sizeToFit不工作

UITextView sizeToFit不工作
EN

Stack Overflow用户
提问于 2014-01-08 14:11:31
回答 4查看 14.5K关注 0票数 5

奇怪的是,我一直在到处寻找这个答案,但似乎什么都没有用!

我有一个简单的UITextView,我试图根据它的内容调整viewController中的大小:

代码语言:javascript
复制
- (void)viewDidLoad
{
    [super viewDidLoad];

    NSString *lorum = @"Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda.";

    self.textView.text = lorum;

    self.textView.scrollEnabled = NO;
    [self.textView sizeToFit];
    [self.textView layoutIfNeeded];
}

但这就是我最后要做的

我漏掉了什么明显的东西吗?

更新(框架背景):

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-01-08 14:58:23

正如我在评论中所写的,在我看来,如果你不想使用UITextView的卷轴,我建议使用一个简单的UILabel。这是代码:

编辑:如果您出于诸如可编辑文本或可选择文本之类的原因使用UITextView,您可以使用相同的代码进行一些修改(我在注释之类的代码中添加了这些修改)

EDIT2,如果您的标签处于情节提要中,检查约束或删除自动收费表

.h

代码语言:javascript
复制
  @interface ViewController : UIViewController {

    IBOutlet UILabel *label;

   }

.m

代码语言:javascript
复制
 - (void)viewDidLoad {
   [super viewDidLoad];

 //  UILabel *label = [[UILabel alloc] init];
   label.backgroundColor = [UIColor lightGrayColor];

   NSString *lorum = @"Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda.";

   //for use labrect with UITextView you set the font of UITextView:
   //label.font = [UIFont systemFontOfSize:17];       

   CGSize maxSize = CGSizeMake(320, 410);
   CGRect labrect = [lorum boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:label.font} context:Nil];

   label.text = lorum;
   //for use UITextView you should comment the line under
   label.numberOfLines = 0;
   label.frame = CGRectMake(0, 30, 320, labrect.size.height);

 //  [self.view addSubview:label];

  };

票数 6
EN

Stack Overflow用户

发布于 2014-03-19 18:05:46

https://medium.com/ios-os-x-development/102e73853fbc

看看这个解决方案。对我起作用了!

您所要做的就是在故事板上添加一个高度约束,并在视图控制器中设置一个出口。然后将以下行添加到viewDidAppear方法中:

CGSize大小= self.textView.contentSize;self.textViewHeightConstraint.constant = size.height;

如果您遵循该链接,则有一个示例项目。

票数 5
EN

Stack Overflow用户

发布于 2014-01-08 14:54:43

你试过使用UIViewContentMode吗?

例如:

代码语言:javascript
复制
[self.textView setContentMode:UIViewContentModeScaleToFill];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20998032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档