Tag: uilabel

如何使UIAppearance代理适用于编程创build的意见?

我试图使用UIAppearance来为我的应用程序创build一个主题。 说我想我所有的UILabel的文本是橙色的。 我写了: UILabel.appearance(whenContainedInInstancesOf: [UIView.self]).textColor = .orange 但是我意识到: 这适用于通过Interface Builder创build的每个UILabel 。 这不适用于以编程方式创build的任何UILabel 。 它们默认显示为黑色 任何想法如何强制以编程方式创build的实例也是橙色的? PS:我也试过: UILabel.appearance().textColor = .green这不是我想要的,但也不起作用。

在UITableViewCell中的UILabel大小不正确(分配文本后的animation)

UILabel的文本在显示后闪烁,首先用一行上的省略号出现,然后占用它所适合的两行。请注意,单元格高度不会改变。 这是问题: 标签“Друзыя,примитеучастиеинапонитеКоробку!” ( 朋友,参加并填写框)!在视图转换期间,首先出现被截断和错位为“Друзъя,примитеучасти…”。 这只发生在iOS 8.1的iPhone 4上。 所有使用标签的操作(文本分配除外)发生在故事板中。 什么导致这个闪烁?

UITableViewCell中UILabels的布局警告不明确

我在UITableViewCell有两个相邻的UILabel视图。 左边有一条线,右边可以有多条线,并使用剩下的任何水平空间。 两个标签距离单元格顶部的距离相同。 单元格的高度由正确标签的高度决定。 在某些情况下,我在右边的UILabel上面和下面看到了不必要的额外空间,因此它们不是顶端alignment的。 hasAmbiguousLayout它,我发现hasAmbiguousLayout为这两个标签返回YES 。 当我在debugging器中调用constraintsAffectingLayoutForAxis时,我得到以下输出: (lldb) po [0x7b769520 constraintsAffectingLayoutForAxis:0] <__NSArrayM 0x7b6cb340>( <NSAutoresizingMaskLayoutConstraint:0x7b76abf0 h=–& v=–& 'UIView-Encapsulated-Layout-Left' H:|-(0)-[UITableViewCellContentView:0x7b768fc0] (Names: '|':MyTVCell:0x7b769330'MyTVCell' )>, <NSLayoutConstraint:0x7b76b010 H:|-(15)-[UILabel:0x7b769520'Number'] (Names: '|':UITableViewCellContentView:0x7b768fc0 )>, <NSContentSizeLayoutConstraint:0x7b769a90 H:[UILabel:0x7b769520'Number'(131)] Hug:250 CompressionResistance:750> ) 对于位于第一个UILabel右侧的第二个UILabel ,我得到这个: (lldb) po [0x7b769710 constraintsAffectingLayoutForAxis:0] <__NSArrayM 0x7b6cb9e0>( <NSContentSizeLayoutConstraint:0x7b769a90 H:[UILabel:0x7b769520'Number'(131)] Hug:250 CompressionResistance:750>, <NSAutoresizingMaskLayoutConstraint:0x7b76abf0 h=–& v=–& 'UIView-Encapsulated-Layout-Left' H:|-(0)-[UITableViewCellContentView:0x7b768fc0] (Names: '|':MyTVCell:0x7b769330'MyTVCell' )>, <NSLayoutConstraint:0x7b76b010 H:|-(15)-[UILabel:0x7b769520'Number'] (Names: […]

IBOutlet不会在UI中显示其值

我正在构build一个使用storyboard的iOS应用程序。我已经在我的应用程序中使用swift实现了Google Maps,其余的代码都在Objective C中。 我的场景: 1.如图所示,当我点击位置前面的标签(在第一个视图控制器中)时,一个模式segue将打开包含map的第二个视图控制器。 2.在地图视图控制器中,当用户通过触摸移动地图的时候,我得到了一个标签中的地址值。 (类似于超级应用程序) 3.此后,只要用户按下此控制器上的完成button,它将使用自定义search和位置的值返回到第一个视图控制器。 问题是,这个标签的iboulet被隐藏在UI中,并且不显示它的值。 但是,当我在控制台打印这个值,我能够显示的价值。 以下是我的代码。 非常感谢帮助。 第一视图控制器代码写在swift中: – (void)viewDidLoad { [super viewDidLoad]; _Locationlabel.text=_location; NSLog(@"location=%@",_Locationlabel.text); } 秒视图控制器代码: override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { if (segue.identifier == "locationDone") { // pass data to next view var svc = segue.destinationViewController as Host; svc.location = self.addressLabel.text; println("location\(svc.location)"); } } @IBAction func doTap(x:UIButton) […]

可拖动的标签 – ios

只有当用户触摸并拖动标签时,我才需要移动标签。 我无法找出用户是否触摸过该标签。 我使用了touchesMoved方法(Swift 2)。 以下是我的代码 override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) { super.touchesBegan(touches as Set<UITouch>, withEvent: event) let touch = touches.first if (touch!.view) == (moveLabel as UIView) // moveButton is my label { location = touch!.locationInView(self.view) moveLabel.center = location } } 当我这样做,我的标签不动:( :(请人帮助我

iOS – 试图旋转文本标签,标签消失

我正在试图旋转我的视angular90度的标签。 我已经尝试了以下两种方法来做到这一点,标签从屏幕上消失。 我三重检查了属性是否正确连接。 有什么想法吗? 尝试一个: // rotating labels 90 degrees self.labelCloseScroll.transform = CGAffineTransformMakeRotation (3.14/2); 尝试两个: CGAffineTransform rotate = CGAffineTransformMakeRotation(3.14/2); rotate = CGAffineTransformScale(rotate, 1, 1); [self.labelCloseScroll setTransform:rotate];

如何检测和超链接/提及/标签在UILabel点击?

如何检测和链接/提及/标签可点击UILabel。 另外,有没有我可以利用的任何开源库(我已经看过不处理多行tex的Fancy UILabel,不处理提及/ hashtag的TTAttributedLabel)?

Swift:点击UILabel的一部分文本

我有一个问题,“boundingRectForGlyphRange”总是返回CGRect.zero“0.0,0.0,0.0,0.0”。 “boundingRectForGlyphRange”不起作用。 例如,我正在编写触摸UILabelfunction的一部分文本。 我的文本有第一部分是“任何文本”,第二部分是“读更多”。 当我点击“阅读更多”时,我只需要点击识别器就可以工作。 如果我触及UILabel的任何一点,“CGRectContainsPoint”总是返回true,然后调用action 在这里我的代码: override func viewDidLoad() { super.viewDidLoad() // The full string let firstPart:NSMutableAttributedString = NSMutableAttributedString(string: "Lorem ipsum dolor set amit ", attributes: [NSFontAttributeName: UIFont.systemFontOfSize(13)]) firstPart.addAttribute(NSForegroundColorAttributeName, value: UIColor.blackColor(), range: NSRange(location: 0, length: firstPart.length)) info.appendAttributedString(firstPart) // The "Read More" string that should be touchable let secondPart:NSMutableAttributedString = NSMutableAttributedString(string: "READ MORE", attributes: [NSFontAttributeName: […]

系统字体“Hiragino Sans”显示剪切上行和下行

我需要在我的应用程序中使用iOS的系统字体“Hiragino Sans W3”,但无论select哪种尺寸/样式或UILabel的尺寸,字体的上行和下行总是出现剪切: 看来这可以通过创buildUILabel的子类和覆盖方法textRectForBounds:limitedToNumberOfLines:来textRectForBounds:limitedToNumberOfLines:返回“正确的”值。 所以下面的代码… – (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines { CGRect result = [super textRectForBounds:bounds limitedToNumberOfLines:numberOfLines]; result = CGRectInset(result, 0, -5); return result; } …结果在上行和下行不再被剪辑了: 我知道也可以使用外部编辑器调整字体上升和下降位置。 但是这是一个系统字体 ,不应该没有任何修改正确的工作? 有什么我在这里失踪? 在此先感谢您的任何答案。

方法删除第二个标签,然后第一个标签,无法正常工作

我知道我错过了一些明显的东西,但是我看不到它。 此方法旨在将标签的文本与文本框的文本进行比较,然后删除文本。 因此,如果第一个标签上显示“Puppy”,第二个标签显示“Kittens”,而文本框中显示“Kittens”,则应该删除第二个标签的文本并留下第一个标签的文本。 如果第二个标签是空白的,那么该方法应该删除第一个标签的文本。 但是,不pipe怎样,我都会把这个方法搞糊涂,或者删除第二个标签,而不是第一个,删除它们,或者删除它们中的任何一个。 这是我试过的(lblFabric1是第一个标签,lblFabric2是第二个标签,txtType是文本框): -(IBAction)btnDelete:(id)sender { if ((self.lblFabric2.text== self.txtType.text)) { self.lblFabric2.text = @""; } else if ((self.lblFabric2.text != self.txtType.text)) { self.lblFabric1.text=@""; } } 它删除第二个标签,但不是第一个标签。 如果我尝试设置“Else if”来: else if ((self.lblFabric2.text==@"")) 它给了我一个错误(“”直接比较string文字有未定义的行为。“)我只是在这个错误的方式?我错过了什么?