Tag: uilabel

更新UITableViewCell子视图的框架不起作用

我有一个自定义(subclassed)UITableViewCell包含一些UILabels,UIButton和NSBlock作为属性。 这个子类叫做ExploreCell 。 其中两个属性是UILabels,分别命名为waitLabel和lastUpdateLabel 。 当lastUpdateLabel的内容为零或为空时,即@"" ,我需要将waitLabel垂直向下(在Y轴上)移动10个像素。 我这样做是通过检查一个NSDictionary一些对象,如下面的代码所示,我已经放在-tableView:cellForRowAtIndexPath:方法中。 CGRect frame = cell.waitLabel.frame; if ([[venue allKeys] containsObject:@"wait_times"] && ([[venue objectForKey:@"wait_times"] count] > 0)) { frame.origin.y = 43; } else { frame.origin.y = 53; } [cell.waitLabel setFrame:frame]; 但是,此代码间歇性地工作,并试图调用-setNeedsLayout ,仍然无法正常工作。 间歇地说,我的意思是在滚动几次之后,其中一个或两个符合条件的单元格将单元格的原点向下移动10个像素,实际上它们的waitLabel的框架已经改变。 请你能告诉我为什么会发生这种情况,以及如何解决这个问题。

在UILabel中NSAttributedString尾部截断

我使用ContextLabel来parsing@,#和URL的。 这是我find的最好的解决scheme,使其大小正确,不影响性能。 它首先在input处parsingstring并将其转换为NSAttributedString ,然后将其分配给UILabel attributedText NSAttributedString attributedText 。 一切都按预期工作,除了截尾 – 这是非常不正确的(见下图) 我应该从哪里开始挖掘 – 属性string是否属于错误的属性? 或标签布局问题? 谢谢!

当高度大于8192时,UILabel视图消失

将大string分配给UILabel。 而且,将这个标签添加到滚动视图。 当UILabel高度大于8192pt(即2 ^ 13)时,UILabel消失。 这是一个iOS的错误? 我应该用其他的实现来渲染这样的string数量吗? 我应该使用单元格的表格视图吗? UPDATE 将显示UILabel的代码: UILabel *label = [[UILabel alloc] init]; label.backgroundColor = [UIColor clearColor]; label.text = rumor.displayText; label.frame = CGRectMake(0, 0, self.view.frame.size.width, 8192); label.lineBreakMode = UILineBreakModeWordWrap; label.numberOfLines = 0; 而UILabel的代码消失了 UILabel *label = [[UILabel alloc] init]; label.backgroundColor = [UIColor clearColor]; label.text = rumor.displayText; label.frame = CGRectMake(0, 0, self.view.frame.size.width, 8193); […]

使用NSTextAttachment设置NSAttributedString的截尾的垂直alignment

我使用下面的代码在iOS 8中为UILabel生成一个NSAttributedString 。 // a long long Chinese title NSString *title = @"这是一个很长很长很长很长很长很长的中文标题"; // setup icon attachment NSTextAttachment *iconAttachment = [[NSTextAttachment alloc] init]; iconAttachment.image = [UIImage imageNamed:imageName]; iconAttachment.bounds = bounds; NSAttributedString *ycardImageString = [NSAttributedString attributedStringWithAttachment:iconAttachment]; // setup attributed text NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc] initWithString:title]; if (shouldShowYcard) { [attributedText insertAttributedString:ycardImageString atIndex:0]; [attributedText insertAttributedString:[[NSAttributedString alloc] initWithString:@" […]

UILabel分钟字体大小阴影问题

在我的UILabels上设置最小字体大小时遇到​​问题。 正如你所看到的阴影不是跟着字体大小。 这应该只是1 px高。 我的标签: 我的设置:

我在dynamic更新另一个控制器中的UILabel时遇到了麻烦。 它需要对应于在objective-c中选中的checkbox

在购物商店的应用程序工作。 过去的一周半,我一直在围绕着如何正确地做到这一点。 问题在于UILabel需要dynamic更新与选中checkbox对应的文本。 当点击应用button时,还需要知道是否应用select,或者如果客户决定改变主意而不点击应用,则返回先前的select。 这是我遇到的问题。 我把3个控制器称为图像1,图像2和图像3。 我的模特是一个独立的class级,当我们希望细化一系列服装项目结果时,我会传递来回的副本以保持用户的select。 例如,用户点击图像1中的细化button 他们被拿到形象2,他们决定他们想要改善结果 然后他们被拍到他们做select的图像3页 哪里出现问题: 简而言之,在图片3中,客户做出select并且完成点击,然后他们被接回到图像2,其中他们的select被显示在由select的细化选项(例如性别)下方的UILabel中的逗号分隔的string中。 如果他们的select正确,他们可以点击应用,完成并显示如图1所示。细化button中还会显示一个勾号,以使客户意识到精炼是有效的。 现在让我们说一个select已经在下面的图像,客户回到图像3来修改select。 假设他没有选中“微型网站”。 应该发生的是,当他回到图像2时,应该更新提炼选项下面的列表。 这工作正常,但我实际上更新当点击应用button时更新的属性。 所以如果客户决定他们不想再细化,而不是点击应用,而后退button,而不是他们的形象1,那么我需要在属性中更新原始selectstring。 事情是这样的,只要在图像3中进行select,就会更新这个属性。所以当客户返回到图像2时,因为我们没有选中“microsites”,只有“men”会显示在refine by选项下面的string中。 我已经尝试创build一个临时属性来保存以前的select,但事情只是真的让这一切来回麻烦。 更多信息: 我使用prepareForSegue方法和委托/协议在控制器之间来回传递模型类。 当图像3中的完成button被点击时,图像2就知道了。 这是我通过模型的地方。 图像1知道何时点击图像2中的应用button,并且这是我将模型传递过来的地方。 为了传递模型从图像1到2,然后2到3我使用prepareForSegue方法。 图片1: 图2: 图3: 你会怎么做? 我觉得我把所有的模型都转换成了自己的类,从而开创了一个好的开始。 这使事情变得简单了,但UILabel的另一个问题阻碍了我。 更新: – (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([[[sender titleLabel] text] isEqualToString:@"Gender"]) { VAGRefineGenderViewController *vc = [segue destinationViewController]; [vc setDelegate:self]; [vc setRefineModel:[self refineModel]]; […]

围绕UILabel的每一个字的边界

有没有一种方法可以在UILabel每个单词上绘制边界。 假设UILabel包含string“This is the Line 1”。 我想5个不同的边界5个字左右 这个 是 该 线 1

iOS / Objecitve-C UILabel文字字距

我正在寻找如何增加UILabel的字符间距,使我的UIdevise实现更具吸引力。 我发现下面的答案,它告诉它允许调整文本string ,它是用Swift编写的。 但是我需要的是一个Objective-C解决scheme。 所以我试图转换下面的代码片段: import UIKit @IBDesignable class KerningLabel: UILabel { @IBInspectable var kerning:CGFloat = 0.0{ didSet{ if ((self.attributedText?.length) != nil) { let attribString = NSMutableAttributedString(attributedString: self.attributedText!) attribString.addAttributes([NSKernAttributeName:kerning], range:NSMakeRange(0, self.attributedText!.length)) self.attributedText = attribString } } } } 在Objective-C中遵循: KerningLabel.h: #import <UIKit/UIKit.h> IB_DESIGNABLE @interface KerningLabel : UILabel @property (nonatomic) IBInspectable CGFloat kerning; @end KerningLabel.m: #import […]

iOS自动调整标签高度

我使用下面的代码来自动调整UITableView中标签的高度。 它大部分时间都在运行,但是有时文本会被截断。 我的代码有什么问题,或者我需要添加什么? UILabel *textLabel = ((UILabel *)[cell viewWithTag:3]); textLabel.text = text; CGSize maximumLabelSize = CGSizeMake(296, FLT_MAX); CGSize expectedLabelSize = [text sizeWithFont:textLabel.font constrainedToSize:maximumLabelSize lineBreakMode:textLabel.lineBreakMode]; //adjust the label the the new height. CGRect newFrame = textLabel.frame; newFrame.size.height = expectedLabelSize.height; textLabel.frame = newFrame;

如何调整UILabels以适应内容?

我的程序目前有三十个可能包含一到三位数字的UILabel。 我希望我的UILabel能够随着它们中的数字改变大小而水平地扩大和缩小。 目前文本正在缩小,UILabels的大小保持不变。 如果这可以使用xib文件来完成,这将比编程方式更好,但如果这是不可能的,那么将是很好的。 谢谢