有没有办法在iOS中的单个标签中使用两种甚至三种字体颜色?
如果用"你好,你好吗"这个文字作为一个例子,那么"你好"会是蓝色的,"你好吗"会是绿色的吗?
这有可能,它似乎比创建多个标签更容易吗?
我有一个UILabel来自服务器的文本.一些文本将被标识为链接,并且在触摸这些链接时应该执行一些操作.例如
NSString*str = @"我的电话号码是645-345-2345,我的地址是xyz ";
这是完整的文本UILabel.我只有一个UILabel用于显示此文本(文本是动态的.我只是举了一个例子.).点击这些链接后,我需要执行操作,例如导航到某个不同的屏幕或拨打电话.
我知道我可以在OHAttributedLabel的帮助下显示这样的文字.链接可以显示如下:
[label1 addCustomLink:[NSURL URLWithString:@"http://www.foodreporter.net"] inRange:[txt rangeOfString:someString]];
Run Code Online (Sandbox Code Playgroud)
但我想知道如何让这些文本链接执行某些操作,如导航到不同的屏幕或拨打电话.
如果需要更多解释,请与我们联系.
对于给定的NSRange,我想找到一个CGRect在UILabel对应的的字形NSRange.例如,我想CGRect在"快速的棕色狐狸跳过懒狗"这句话中找到包含"狗"字样的字样.

诀窍是,UILabel有多行,而文本确实attributedText如此,所以找到字符串的确切位置有点困难.
我想在我的UILabel子类上写的方法看起来像这样:
- (CGRect)rectForSubstringWithRange:(NSRange)range;
Run Code Online (Sandbox Code Playgroud)
细节,对于有兴趣的人:
我的目标是能够创建一个具有UILabel的确切外观和位置的新UILabel,然后我可以制作动画.我已经把剩下的事情搞清楚了,但特别是这一步让我暂时退缩了.
到目前为止我尝试解决问题的方法是:
UITextView和UITextField而不是UILabel.我敢打赌,对此的正确答案涉及以下其中一项:
NSLayoutManager和textContainerForGlyphAtIndex:effectiveRange更新:这是一个github要点,我已经尝试了迄今为止解决这个问题的三件事:https://gist.github.com/bryanjclark/7036101
你怎么能为UIButton和旋转文字UILabel?90度,180度.
我想更改UILabel文本颜色,但我无法更改颜色,这就是我的代码的样子.
UILabel *categoryTitle = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 46, 16)];
categoryTitle.text = @"abc";
categoryTitle.backgroundColor = [UIColor clearColor];
categoryTitle.font = [UIFont systemFontOfSize:12];
categoryTitle.textAlignment = UITextAlignmentCenter;
categoryTitle.adjustsFontSizeToFitWidth = YES;
categoryTitle.textColor = [UIColor colorWithRed:188 green:149 blue:88 alpha:1.0];
[self.view addSubview:categoryTitle];
[categoryTitle release];
Run Code Online (Sandbox Code Playgroud)
标签文本颜色为白色,而不是我的自定义颜色.
感谢您的帮助.
我在swift中创建了我的UILabel:
let label = UILabel(frame: CGRect( x: 50, y: 50, width: 100, height: 50))
Run Code Online (Sandbox Code Playgroud)
设置属性似乎很容易:
label.textColor = UIColor.redColor()
Run Code Online (Sandbox Code Playgroud)
如何实现像textAlignment这样的枚举类型?在目标C中它是
label.textAlignment = NSTextAlignmentCenter;
Run Code Online (Sandbox Code Playgroud)
但很快它似乎没有用.
我有一个标签,几行文字,我想增加行之间的间距.其他人也提出了类似的问题,但解决方案并没有解决我的问题.我的标签也可能包含或不包含段落.我是新来的Swift.是否有使用故事板的解决方案?或者只通过NSAttributedString它可能的?
我目前正在创建一个使用自定义View Controller容器的应用程序.屏幕上一次显示多个视图,当点击一个视图时,所选视图控制器将动画显示为全屏.在这样做时,所选视图控制器子视图也会缩放(帧,字体大小等).但是,UILabel的字体属性不可动画导致问题.我尝试过多种解决方案,但都很糟糕.
我尝试过的解决方案是:
到目前为止,一个是最好的解决方案,但我不满意.
我正在寻找其他建议,如果有人有任何或UILabel替代使用[UIView animate ..]平滑动画.
这是一个很好的例子,类似于我想要的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:^{
self.label.transform = CGAffineTransformScale(self.label.transform, 4.0, 4.0);
self.label.center = self.view.center;
} completion:^(BOOL finished) {
self.label.font = [UIFont boldSystemFontOfSize:80.0];
self.label.transform = CGAffineTransformScale(self.label.transform, 1.0, 1.0);
[self.label sizeToFit];
}];
Run Code Online (Sandbox Code Playgroud) 我需要创建一个UILabel背景颜色,我想添加一些左边填充,但我在这里找到的每个解决方案似乎都是一个讨厌的黑客.
从iOS 5开始实现这一目标的"标准"方法是什么?
编辑
用于说明我的场景的屏幕截图.-
