奇怪的是,我一直在到处寻找这个答案,但似乎什么都没有用!
我有一个简单的UITextView,我试图根据它的内容调整viewController中的大小:
- (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];
}但这就是我最后要做的

我漏掉了什么明显的东西吗?
更新(框架背景):

发布于 2014-01-08 14:58:23
正如我在评论中所写的,在我看来,如果你不想使用UITextView的卷轴,我建议使用一个简单的UILabel。这是代码:
编辑:如果您出于诸如可编辑文本或可选择文本之类的原因使用UITextView,您可以使用相同的代码进行一些修改(我在注释之类的代码中添加了这些修改)
EDIT2,如果您的标签处于情节提要中,检查约束或删除自动收费表
.h
@interface ViewController : UIViewController {
IBOutlet UILabel *label;
}.m
- (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];
};

发布于 2014-03-19 18:05:46
https://medium.com/ios-os-x-development/102e73853fbc
看看这个解决方案。对我起作用了!
您所要做的就是在故事板上添加一个高度约束,并在视图控制器中设置一个出口。然后将以下行添加到viewDidAppear方法中:
CGSize大小= self.textView.contentSize;self.textViewHeightConstraint.constant = size.height;
如果您遵循该链接,则有一个示例项目。
发布于 2014-01-08 14:54:43
https://stackoverflow.com/questions/20998032
复制相似问题