考虑我在UILabel(动态文本的长行)中有以下文本:
由于外星军队的数量远远超过了团队,因此玩家必须利用后世界末日的世界,例如在垃圾箱,支柱,汽车,瓦砾和其他物体后面寻找掩护.
我想调整UILabel's高度,以便文本可以适应.我正在使用以下属性UILabel来使文本包装.
myUILabel.lineBreakMode = UILineBreakModeWordWrap;
myUILabel.numberOfLines = 0;
Run Code Online (Sandbox Code Playgroud)
如果我没有朝着正确的方向前进,请告诉我.谢谢.
让我们看看我的字符串看起来像这样:
NSString *longStr = @"AAAAA\nBBBBB\nCCCCC";
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能让UILabel显示这样的信息
AAAAA
BBBBB
CCCCC
我不认为\nUILabel会认可,所以我可以在NSString中放置任何东西,以便UILabel知道它必须在那里创建换行符吗?
在iOS7中,sizeWithFont不推荐使用,因此我正在使用boundingRectWithSize(返回CGRect值).我的代码:
UIFont *fontText = [UIFont fontWithName:[AppHandlers zHandler].fontName size:16];
// you can use your font.
CGSize maximumLabelSize = CGSizeMake(310, 9999);
CGRect textRect = [myString boundingRectWithSize:maximumLabelSize
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName:fontText}
context:nil];
expectedLabelSize = CGSizeMake(textRect.size.width, textRect.size.height);
Run Code Online (Sandbox Code Playgroud)
在textRect,我的尺寸大于我maximumLabelSize,尺寸与使用时不同sizeWithFont.我该如何解决这个问题?
我需要能够在UITableView中调整单个单元格的高度,以使其适合其详细标签中的文本量.
我玩了以下但是它对我不起作用:
如何在没有自定义单元格的情况下在UITableViewCell中包装文本
希望你能帮忙,谢谢.
编辑:
试图代码:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
cell.textLabel.numberOfLines = 0;
cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:17.0];
}
Run Code Online (Sandbox Code Playgroud)
和
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellText = @"Go get some text for your cell.";
UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:17.0];
CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT);
CGSize labelSize = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
return labelSize.height + 20;
}
Run Code Online (Sandbox Code Playgroud)
这没有用,它显示了单元格上的整个字符串,但单元格高度根本不受影响.
这是我上一期的问题.我正在使用beginAnimations:context:设置动画块来动画一些UITextLabels.但是我在文档中注意到:"在iOS 4.0及更高版本中不鼓励使用此方法.您应该使用基于块的动画方法."
我的问题是我很想使用animateWithDuration:动画:(在iOS 4.0及更高版本中可用)但不想排除使用iOS 3.0的人.有没有办法在运行时检查设备的iOS版本,以便我可以决定使用哪个语句?
我有一个多行UILabel,其字体大小我想根据文本长度进行调整.整个文本应该适合标签的框架而不截断它.
遗憾的是,根据文档,该adjustsFontSizeToFitWidth属性"仅在numberOfLines属性设置为1 时才有效".
我尝试使用确定调整后的字体大小
-[NSString (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode]
Run Code Online (Sandbox Code Playgroud)
然后递减字体大小直到它适合.不幸的是,此方法在内部截断文本以适合指定的大小,并返回生成的截断字符串的大小.
"快速":如何获得NSString的大小(宽度)?
我正在尝试查看字符串的字符串宽度是否大于给定的屏幕宽度,我必须"裁剪"它并将其附加到"...",获得通常的行为一个UILabel.string.length不会起作用,因为AAAAAAAA和iiiiii具有相同的长度但不同的大小(例如).
我有点卡住了.
非常感谢.
我试图在网上搜索,但没有找到我的问题的明确答案所以我来征求你的专家意见.我有一个带有2个标签的视图.第一个标签用于显示名称的缩写,2-3个字母.第二个标签显示全名.
我有的问题是,是否有办法根据给定的字体类型,大小和字符串长度动态调整标签大小?我问,因为我希望第二个标签靠近第一个标签,两者之间没有太多的空白空间,或者没有第一个标签与第二个标签重叠.
这不是一个标签的原因是因为第一个标签应该有更大的字体和不同的颜色方案,然后是第二个标签.
任何意见是极大的赞赏.
怎样才能获得UITableViewCell当内heightForRowAtIndexPath方法,即给予indexPath?
(然后我可以访问我创建的内容视图以增加其高度)
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
// How to get the UITableViewCell associated with this indexPath?
}
Run Code Online (Sandbox Code Playgroud)
谢谢
编辑:事实上,真的有一个有效的方法来做到这一点?当我发表一些NSLog陈述时,它似乎heightForRowAtIndexPath在调用之前调用了几次cellForRowAtIndexPath(这是我UILabels在单元格中设置的位置)?这种意味着我可能会尝试使用一种不起作用的技术,即我希望heightForRowAtIndexPath能够访问每个单元格中已经创建的标签以获得它们的高度并将它们加在一起以获得整个单元格行高度,但是如果它们没有它们的话尚未设置(内cellForRowAtIndexPath)然后我想我的方法不能真正起作用?
我正在使用此方法动态获取UILabel的高度:
+(CGSize) GetSizeOfLabelForGivenText:(UILabel*)label Font:(UIFont*)fontForLabel Size: (CGSize)LabelSize{
label.numberOfLines = 0;
CGSize labelSize = [label.text sizeWithFont:fontForLabel constrainedToSize:LabelSize lineBreakMode:NSLineBreakByCharWrapping];
return (labelSize);
}
Run Code Online (Sandbox Code Playgroud)
使用此解决方案,如果我的代码在iOS 8下运行,我将获得UILabel的确切大小,但如果我在iOS7上运行我的应用程序,则返回不同的值.
ios ×7
iphone ×7
objective-c ×5
uilabel ×5
cocoa-touch ×3
ios7 ×2
nsstring ×2
uikit ×2
uitableview ×2
font-size ×1
ios6 ×1
line-breaks ×1
newline ×1
text ×1
width ×1
xcode ×1