这个一般的话题在这里被多次提出:如何使用不同数量的文本渲染UITableViewCells,从而改变高度。 规范的答案是:你使用sizeWithFont来计算heightForRowAtIndexPath中的表视图控制器委托中的高度:constrainedToSize:lineBreakMode :. 稍后,单元格会被绘制,如果需要的话,您可以使用[label sizeToFit]之类的东西,所有的东西都像魔术一样。 我的问题:我正在包装一些单元格,因为sizeWithFont:从实际绘图返回不同的尺寸。 一个具体的例子: 原文是这样的:“人们忘记了@BillGates在1993年从NEC那里买了一块性感厚度为1/4英寸的板子,不pipe这个星期发生什么事情都不是关于硬件的! CGSize theSize = [text sizeWithFont:[UIFont systemFontOfSize:17.0f] constrainedToSize:CGSizeMake(310.0f, FLT_MAX) lineBreakMode:UILineBreakModeWordWrap]; NSLog(@"calculated size for %@: %f, %f",text, theSize.width, theSize.height); 这返回:306.000000,84.000000。 (即4行,17px字体和4px行间距,21px领先。)好。 但是,后来实际绘制单元时: label = (UILabel *)[cell viewWithTag:3]; label.text = [NSString stringWithFormat:@"%@", text]; label.lineBreakMode = UILineBreakModeWordWrap; label.font = [UIFont systemFontOfSize:17.0f]; CGSize labelSize; labelSize = label.frame.size; NSLog(@"label size before resizing: %f, […]
我有一个多行UILabel的字体大小,我想调整取决于文本的长度。 整个文本应该适合标签的框架而不截断它。 不幸的是,根据文档adjustsFontSizeToFitWidth属性“仅在numberOfLines属性设置为1时才有效”。 我试图确定使用调整的字体大小 -[NSString (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode] 然后递减字体大小直到适合。 不幸的是,这个方法在内部截断了文本以适合指定的大小,并返回所得截断string的大小。
我有一个UILabel,但我怎么能让用户select它的文本的一部分。 我不希望用户能够编辑文本,也不希望标签/文本框有边框。
这与其他所有的“我如何在UILabel文本的中心”这个问题有点不同… 我有一个UILabel与一些文本,我想在UILabel垂直居中文本。 有什么大不了的,对吧? 这是默认的。 问题来了,因为我的文字是dynamic的,我有自动打开。 随着文字变大,字号缩小。 你得到这个行为。 请注意,字体基线没有移动,我希望它移动,因此数字在UILabel's框架中垂直居中。 很简单,对吧? 我只记得viewDidLoad的框架的原始中心 self.workoutTimeCenter = _workoutTimeLabel.center; 然后我改变文本后调用sizeToFit ,对吧? [_workoutTimeLabel sizeToFit]; _workoutTimeLabel.center = _workoutTimeCenter; 那么, sizeToFit ,我猜,确切地说,它应该做的,调整框架,使文本适合,而不是缩小! 如何在尊重基线和自动收缩的同时将文本垂直居中放在UILabel ? (注意, iOS5和更高版本的解决scheme是好的,我甚至可以处理iOS6和更高版本的解决scheme。)
我想让UILabel的文字变粗 infoLabel=[[UILabel alloc]initWithFrame:CGRectMake(90,150, 200, 30)]; [infoLabel setText:@"Drag 14 more Flavors"]; [infoLabel setBackgroundColor:[UIColor clearColor]]; [infoLabel setFont:[UIFont fontWithName:@"Arial" size:16]]; [infoLabel setTextColor:[UIColor colorWithRed:193.0/255 green:27.0/255 blue:23.0/255 alpha:1 ]];
你如何将UILabel的文本设置为以Swift编程的粗体? 我的代码到目前为止: var label = UILabel(frame:theFrame) label.text = "Foo"
我创build了一个文档视图,显示angular落中的页码。 页码是具有半透明背景颜色的uilabel,并具有angular半径(使用view的layer的cornerRadius属性)。 我已经定位这上面的UIScrollView 。 但是,这使得滚动生涩。 如果我删除cornerRadius ,性能是好的。 有什么我可以做的呢? 什么是更好的解决scheme? 它似乎已经在UIWebView实现,没有任何性能问题。
我目前正在使用自定义视图控制器容器的应用程序。 屏幕上同时显示多个视图,当点击一个视图时,所选视图控制器将全屏显示。 这样做,选定的视图控制器子视图缩放比例(框架,字体大小等)虽然,UILabel的字体属性是不可animation导致的问题。 我已经尝试了多个解决scheme,但所有平坦的吸。 我试过的解决scheme是: 截取较大视图的截图并对更改进行animation处理(与Flipboard的工作方式类似) 通过使用transform属性进行animation处理 缩小UIScrollView并在全屏显示时放大。 设置adjustsFontSizeToFitWidth为YES,并在animation之前设置fontSize 其中一个是迄今为止最好的解决scheme,但我不满意。 我正在寻找其他的build议,如果任何人有任何或UILabel取代animation顺利使用[UIViewanimation..]。 这是一个很好的例子,类似于我想要我的UILabel: http : //www.cocoawithlove.com/2010/09/zoomingviewcontroller-to-animate-uiview.html 编辑:此代码的作品 // Load View self.label = [[UILabel alloc] init]; self.label.text = @"TEXT"; self.label.font = [UIFont boldSystemFontOfSize:20.0]; self.label.backgroundColor = [UIColor clearColor]; [self.label sizeToFit]; [self.view addSubview:self.label]; // Animation self.label.font = [UIFont boldSystemFontOfSize:80.0]; self.label.transform = CGAffineTransformScale(self.label.transform, .25, .25); [self.label sizeToFit]; [UIView animateWithDuration:1.0 animations:^{ […]
有没有一种直接的方式来覆盖导航控制器中的导航栏中当前导航栏项目的titleView? 我已经尝试创build一个新的UIView,并用我自己的UIVIewreplacetopView的titleView属性没有成功。 基本上,我想要一个导航栏标题的多行标题。 有什么build议么?
我正在复制问题之前问的同一个问题 。 我尝试了所给出的解决scheme,但无法解决,因为在使用Autolayout时,sizetofit无效。 预期的显示如下所示。