我只想突出顯示UILabel
中的文本,我嘗試了backgroundColor
作爲標籤,但突出顯示空白區域看起來不太好。那麼有沒有什麼辦法可以突出顯示文字而不用調整UILabel
。如何僅突出顯示UILabel中的文本 - IOS
請檢查圖像,這裏的標籤比文字變大(中心對齊)
感謝名單。
我只想突出顯示UILabel
中的文本,我嘗試了backgroundColor
作爲標籤,但突出顯示空白區域看起來不太好。那麼有沒有什麼辦法可以突出顯示文字而不用調整UILabel
。如何僅突出顯示UILabel中的文本 - IOS
請檢查圖像,這裏的標籤比文字變大(中心對齊)
感謝名單。
大多數其他解決方案不考慮文本跨越多個雖然仍然只突出顯示文本,並且它們都非常好看,包含額外的子視圖。
的的iOS 6及更高版本的解決方案是使用歸因字符串:
NSMutableAttributedString *s =
[[NSMutableAttributedString alloc] initWithString:yourString];
[s addAttribute:NSBackgroundColorAttributeName
value:[UIColor greenColor]
range:NSMakeRange(0, s.length)];
label.attributedText = s;
我不知道有關NSMutableAttributedString,但無論如何其工作正常。謝謝。 – Newbee 2013-05-06 11:12:25
我已經嘗試過上述過程。它不適合我。:| http://i.imgur.com/XhuVL9q.png?1 – 2014-03-24 10:53:04
這不能按預期的方式工作:它還爲由換行創建的空白區域添加背景顏色。檢查:[突出顯示UILabel中的文本](http://stackoverflow.com/questions/31293873/highlight-just-the-text-in-a-uilabel?rq=1) – Damasio 2015-12-10 11:07:35
試試這個
MTLabel *label4 = [MTLabel labelWithFrame:CGRectMake(20, 270, 250, 60)
andText:@"This label is highlighted, has a custom line height, and adjusts font size to fit inside the label."];
[label4 setLineHeight:22];
[label4 setFont:[UIFont fontWithName:@"Helvetica" size:30]];
[label4 setAdjustSizeToFit:YES];
[label4 setMinimumFontSize:15];
[label4 setFontHighlightColor:[[UIColor orangeColor] colorWithAlphaComponent:0.5]];
[self.view addSubview:label4];
你可以有一個的UIImageView,設定您所選擇的它的背景色,然後把你的的UILabel就可以了。 這一定會解決你的問題。 下面是解決方法的代碼:
UIImageView * imgView = [[UIImageView alloc]initWithFrame:CGRectMake(10, 10, 100, 40)];
[imgView setBackgroundColor:[UIColor brownColor]];
[self.view addSubview:imgView];
UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 40)];
[label setBackgroundColor:[UIColor clearColor]];
[label setTextAlignment:UITextAlignmentCenter];
label.text = @"My Label";
[imgView addSubview:label];
[label release];
[imgView release];
您也可以使用Interface Builder中實現相同的。
背景圖像也將覆蓋整個UIlabel ... – Newbee 2013-05-06 09:55:41
請檢查我編輯的答案 – 2013-05-06 10:08:34
請提及投票的理由!所以我可以糾正我的答案。 – 2013-05-06 11:03:04
這將添加一個子視圖文本後面,用正確的尺寸:
CGSize size= [[label text] sizeWithFont:[UIFont systemFontOfSize:18.0]];
NSLog(@"%.1f | %.1f", size.width, size.height);
NSLog(@"%.1f | %.1f", label.frame.size.width, label.frame.size.height);
UIView *highlightView=[[UIView alloc] initWithFrame:CGRectMake(0, 0, size.width, size.height)];
[highlightView setBackgroundColor:[UIColor greenColor]];
[self.view insertSubview:highlightView belowSubview:label];
[highlightView setCenter:label.center];
而且不要忘記:[label setBackgroundColor:[UIColor clearColor]];
如果文本跨越多行,這將無法正常工作。此綠色視圖只能形成單個矩形。如果第二行只有一個單詞,整行將被高亮顯示。 – 2013-05-06 10:35:36
沒錯,但如果您必須支持任何iOS <6且無法使用'NSMutableAttributedString',那麼這可能是最簡單的解決方案。 – xapslock 2013-05-06 10:45:00
你將不得不使用'NSAttributedString'。 – 2013-05-06 09:37:08
@MikeWeller您能否提供更多詳細信息... – Newbee 2013-05-06 09:38:55
我認爲您希望背景清晰。 set label.backgroundColor = [UIColor clearColor]; Label.highlightedTextColor = [UIColor greenColor]; – Ashini 2013-05-06 09:39:24