15 iphone objective-c nsstring uitextfield
有没有办法使用以下方法获得正确的NSString大小:
- (CGSize)sizeWithFont:(UIFont *)font forWidth:(CGFloat)width lineBreakMode:(UILineBreakMode)lineBreakMode
Run Code Online (Sandbox Code Playgroud)
不会被2或300个字符串抛出.目前,如果我尝试在这些长字符串上使用此方法,则会错误地计算它们,并且最终会在UITextView的底部显示大量空格.
我尝试过使用UILineBreakModeWordWrap和UILineBreakModeCharacterWrap.
调整大小正在进行中
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
CGFloat result = 44.0f;
NSString* text = nil;
CGFloat width = 0;
CGFloat tableViewWidth;
CGRect bounds = [UIScreen mainScreen].bounds;
tableViewWidth = bounds.size.width;
width = tableViewWidth - 150;
text = stringWithLongWords;
if (text) {
CGSize textSize = { width, 20000.0f };
CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:10.0f] constrainedToSize:textSize lineBreakMode:UILineBreakModeWordWrap];
size.height += 50.0f;
result = MAX(size.height, 44.0f+30.0f);
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
Sam*_*uri 21
UITextView
并不完全像一个UILabel
包裹在一个UIScrollView
.它的行间距不同于sizeWithFont:constrainedToSize:linkBreakMode:
不考虑的字体大小和边距.
了解字体大小后,您可以计算行数并考虑行间距.你可以猜测边缘并尝试欺骗sizeWithFont:
以提供更有用的答案.
流行的解决方案似乎是:
UILabel
如果您不需要任何UITextView
功能,请使用a
如果你需要hyperlinks
,覆盖UIButtons
看起来像超链接UILabel
使用屏幕外UITextView
的sizeToFit
方法来获得真正的答案
我没有运气第三选项,但听起来应该有效,所以也许我做错了.
我将尝试使用UILabel
和覆盖按钮的超链接.我们会看到结果如何.
如果失败了,Loren Brichter(Tweetie成名)总会选择:将所有东西都用到UIView
自己身上CoreGraphics
.
祝好运!
看看这篇文章如何调整UITextView的内容?
看起来像textView.contentSize.height应该工作(需要注意的是,只有在使用addSubview将UITextView添加到视图后才能使用正确的contentSize)
你说你们有一个UITableView
不同身高的人。您是否将所有单元格的重用标识符设置为相同的值?可能会重复使用已设置高度的旧单元格。如果这是问题所在,您应该在重复使用单元格时再次调整单元格的大小。
归档时间: |
|
查看次数: |
12355 次 |
最近记录: |