根据可用的文本字体大小和字体名称初始化 UITextView
Posted
技术标签:
【中文标题】根据可用的文本字体大小和字体名称初始化 UITextView【英文标题】:Initializing UITextView based on the available text font size and font name 【发布时间】:2013-01-26 04:59:47 【问题描述】:这是我尝试过的,
UITextView *_textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 10, 300, 10)];
NSString *str = @"This is a test text view to check the auto increment of height of a text view. This is only a test. The real data is something different.";
_textView.text = str;
CGRect frame = _textView.frame;
frame.size.height = _textView.contentSize.height;
_textView.frame = frame;//Here i am adjusting the textview
[self.view addSubview:_textView];
Basically after fitting the text into textview,scrolling is enable,but i cannot view the content inside the textview without scrolling the textview.I do want to initialize the UITextView frame size based on the text size,font name etc.
感谢任何解决方案。谢谢。
【问题讨论】:
即使你想禁用滚动? @PKCoder。这不是主要目标,但如果我也这样做会很好 【参考方案1】:NSString *str = @"This is a test text view to check the auto increment of height of a text view. This is only a test. The real data is something different.";
UIFont * myFont = [UIFont fontWithName:@"your font Name"size:12];//specify your font details here
//然后计算上面文字所需的高度。
CGSize textviewSize = [str sizeWithFont:myFont constrainedToSize:CGSizeMake(300, CGFLOAT_MAX) lineBreakMode:NSLineBreakByWordWrapping];
//根据你从上面得到的高度初始化你的textview
UITextView *_textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 10, textviewSize.width, textviewSize.height)];
_textView.text = str;
[self.view addSubview:_textView];
而且您还想禁用 textview 中的滚动,然后参考这个。
正如 William Jockusch 在his answer here 中所说:
您可以通过以下方法禁用几乎所有滚动 进入你的 UITextView 子类:
- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated // do nothing
我说“几乎”所有滚动的原因是即使使用上述内容, 它仍然接受用户滚动。尽管您可以通过以下方式禁用它们 将 self.scrollEnabled 设置为 NO。
如果你只想禁用一些滚动,然后制作一个 ivar,让我们调用 它acceptScrolls,决定是否允许滚动或 不是。然后你的 scrollRectToVisible 方法可以如下所示:
- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated if (self.acceptScrolls) [super scrollRectToVisible: rect animated: animated];
【讨论】:
错过了一些东西。 .它现在就像一个魅力。 .非常感谢 复制他人的话时,请提供适当的引用。我已经在您上面的回答中做到了这一点,但请确保您以后也这样做。以上是关于根据可用的文本字体大小和字体名称初始化 UITextView的主要内容,如果未能解决你的问题,请参考以下文章
iOS-UILabel根据文本字体大小计算label宽度;以及自适应高度
如何将 TextBlock(字体大小)增大/缩小到 WPF 中的可用空间?
css(字体,文本,边距,边框,阴影,背景,渐变,多重背景,列表)