天道酬勤,学无止境

uilabel

向 UILabel 的一部分添加点击手势(Add a tap gesture to a part of a UILabel)

问题 我有一个像这样的 NSAttributedString: NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"testing it out @clickhere"]; NSInteger length = str.length; [str addAttribute:NSForegroundColorAttributeName value:[UIColor bestTextColor] range:NSMakeRange(0,length)]; NSMutableAttributedString 被设置为 UILabel,如下所示: label.attributedText = str; 对于上面字符串中的“@clickhere”字样,如何向另一个视图控制器发出点击手势(或可点击的东西)? 谢谢! 回答1 我认为,最好的方法是将UIGestureRecognizer添加到您的UILabel并验证您想要的框架。 UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)]; [

2021-06-21 11:43:49    分类:技术分享    ios   iphone   uilabel   nsattributedstring   uitapgesturerecognizer

detect urls in UILabel

I have a Tableview and tableview cell is customized to have a UILabel. The text in UILabel is having URLs. Is there a way to detect urls like how UITextView will enable detect URLs so that user interaction should be able to load the urls.

2021-06-21 11:27:31    分类:问答    ios   ipad   uitableview   uilabel

Swift 标签中的换行符和行数(以编程方式)(Line Breaks and Number of Lines in Swift Label (Programmatically))

问题 通过在 StoryBoard 中选择一个标签,我可以选择Line Break为Word Wrap并将行数更改为大于 1。如何在 Swift 中以编程方式执行此操作? 回答1 您可以这样做以编程方式设置它 label.lineBreakMode = NSLineBreakMode.ByWordWrapping label.numberOfLines = 3 斯威夫特 3/4 label.lineBreakMode = .byWordWrapping label.numberOfLines = 3 回答2 如果您希望标签具有多行,请执行以下操作: var myLabel:UILabel = UILabel(frame: CGRectMake(7, 200, 370, 100)) myLabel.lineBreakMode = NSLineBreakMode.ByWordWrapping myLabel.numberOfLines = 0 //'0' means infinite number of lines 请记住在“CGRectMake (7, 200, 370, 100 )”中增加高度<-- 这否则标签将无法采用多行文本。 回答3 注意Swift 3你需要使用更新的方法byWordWrapping productNameLabel.lineBreakMode =

2021-06-21 10:25:15    分类:技术分享    ios   iphone   swift   uilabel

如何以编程方式将标签的 preferredMaxLayoutWidth 设置为自动?(How to set a label's preferredMaxLayoutWidth to automatic programmatically?)

问题 当我尝试在情节提要中将标签的首选宽度设置为自动时,出现以下错误: 属性不可用:自动首选最大布局宽度在 8.0 之前的 iOS 版本上不可用 由于我需要我的布局同时在 iOS 7 和 8 上工作,我计划执行以下操作: 在故事板中将值设置为显式。 在 iOS 7 上,以编程方式将该值设置为显式计算的宽度。 在 iOS 8 上,以编程方式将值设置为自动。 1和2很容易。 我如何进行第 3 步? 有我可以设置的常量吗? 这是我迄今为止尝试过的... 如果您在情节提要上将该值设置为自动并检查preferredMaxLayoutWidth ,您将看到它是0 。 然而,试图将它设置为 0,即使它说它已经是 0,也不能正常工作(例如标签保持为单行)。 例如,我尝试在情节viewDidLoad中将值设置为自动,并在viewDidLoad运行以下命令: self.label.preferredMaxLayoutWidth = self.label.preferredMaxLayoutWidth; 当我不运行上述代码时,标签大小正确。 但是,当我运行上面的代码(应该什么都不做)时,它仍然是一行(不良行为)。 UILabel 的头文件说: // Support for constraint-based layout (auto layout) // If nonzero, this is used

2021-06-21 10:06:49    分类:技术分享    ios   objective-c   iphone   uilabel   autolayout

IBOutlet 不在 UI 中显示其值(IBOutlet does not display its value in UI)

问题 我正在使用故事板构建一个 iOS 应用程序。我已经使用 swift 在我的应用程序中实现了谷歌地图,其余代码在目标 C 中。 我的场景: 1.如图所示,当我单击位置前面的标签(在第一个视图控制器中)时,模态转场会打开第二个包含地图的视图控制器。 2.在地图视图控制器中,当用户通过触摸移动地图时,我在标签中获取地址值。 (类似于超级应用程序) 3.此后,只要用户按下此控制器上的完成按钮,它就会使用自定义转场和位置值返回到第一个视图控制器。 问题是,这个标签的 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

2021-06-21 10:04:51    分类:技术分享    ios   objective-c   swift   uilabel   iboutlet

Resizing the height of UILabel to fit text

I have UILabel in my Cell Subclass which is suppose to hold a title. The size of the title can be various lengths and therefor I need to resize the UILabel to fit the text and to prevent that the text is not to long I also need to be able to set maxHeight. The width should be the same. How can I create such code in swift in a tableViewCell subclass? So far I have this in awakeFromNib theTitleLabel?.font = UIFont(name: "HelveticaNeue", size: 13) theTitleLabel?.textColor = UIColor(rgba: "#4F4E4F") theTitleLabel?.numberOfLines = 0 theTitleLabel?.lineBreakMode = NSLineBreakMode.ByTruncatingTail

2021-06-15 10:24:38    分类:问答    ios   iphone   swift   uilabel

Using NSNumberFormatter to format currency in output UILabel

NSNumberFormatter * fmt; NSNumber * n; fmt = [ [ NSNumberFormatter alloc ] init ]; n = [ NSNumber numberWithFloat: 10 ]; [ fmt setFormatterBehavior: NSNumberFormatterBehavior10_4 ]; [ fmt setCurrencySymbol: @"$" ]; [ fmt setNumberStyle: NSNumberFormatterCurrencyStyle ]; // NSLog( @"%@", [ fmt stringFromNumber: n ]; [ fmt release ] -(IBAction)buttonPressed1:(id)sender { double currency = [Amount1.text doubleValue] + [Amount2.text doubleValue]; SumCurrency.text = [NSString stringWithFormat:@"%0.0f", currency]; } How do I get the SumCurrency.text formated as 1,999 instead of 1999 Please help .. I

2021-06-15 07:22:36    分类:问答    objective-c   iphone   iphone-sdk-3.0   uitextfield   uilabel

UILabel Center contents

Here's my code: UILabel *myLabel; myLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 0, 300, 480)]; myLabel.lineBreakMode = UILineBreakModeWordWrap; myLabel.numberOfLines = 2; // 2 lines ; 0 - dynamical number of lines myLabel.text = @"Please select at least one image category!"; myLabel.font = [UIFont fontWithName:@"Arial-BoldMT" size: 24.0]; myLabel.center = CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height/2); myLabel.backgroundColor = [UIColor clearColor]; [self.view addSubview:myLabel]; [myLabel release]; I was wondering if it is possible to center the wrapped

2021-06-14 15:51:28    分类:问答    iphone   ios   text   uilabel

UILabel in a UITableViewCell With Dynamic Height

I'm having some problems implemented dynamic row heights in a UITableView - but it isn't the cells that I'm having a problem with, its the UILabel inside of the cell. The cell just contains a UILabel to display text. My tableView:heightForRowAtIndexPath: is correctly resizing each cell by calculating the height of the label that will be in it using NSString's sizeWithFont: method. I have a subclass of UITableViewCell that just holds the UILabel property that is hooked up in storyboard. In storyboard I've set its lines to 0 so it will use as many lines as it needs, and I've set its lineBreak to

2021-06-14 10:13:57    分类:问答    ios   uitableview   uilabel

CATextLayer wrapped sizeToFit?

If I set textLayer.wrapped = YES, how do I resize textLayer to contain the wrapped text? I.e., how do I get the new height of the textLayer? Basically, I want something like -[UILabel sizeToFit].

2021-06-14 07:16:08    分类:问答    core-animation   uilabel   core-text   catextlayer   sizetofit