我有一个调查滑块,根据滑块的值显示以下字符串:"非常糟糕,糟糕,好,好,非常好".
以下是滑块的代码:
- (IBAction) sliderValueChanged:(UISlider *)sender {
scanLabel.text = [NSString stringWithFormat:@" %.f", [sender value]];
NSArray *texts=[NSArray arrayWithObjects:@"Very Bad", @"Bad", @"Okay", @"Good", @"Very Good", @"Very Good", nil];
NSInteger sliderValue=[sender value]; //make the slider value in given range integer one.
self.scanLabel.text=[texts objectAtIndex:sliderValue];
}
Run Code Online (Sandbox Code Playgroud)
我希望"非常糟糕"为红色,"坏"为橙色,"好"为黄色,"好"和"非常好"为绿色.
我不明白如何使用NSAttributedString来完成这项工作.
我在故事板中创建了一个字体大小为14的UITextView,并将其连接到我的ViewController的detailDescriptionLabel属性.此代码位于viewDidLoad中:
self.detailDescriptionLabel.font=[UIFont systemFontOfSize:10];
NSLog(@"text is %@; font is %@", self.detailDescriptionLabel.text, self.detailDescriptionLabel.font);
Run Code Online (Sandbox Code Playgroud)
控制台输出如下:
text is Lorem Ipsum; font is (null)
Run Code Online (Sandbox Code Playgroud)
为什么字体设置为nil?setFont:正在工作; 字体缩小了.我希望得到字体,所以在手势后我可以在字体上调用lineHeight.这样,我可以使用以下代码找出已经使用了哪一行:
int line = [tap locationInView:tap.view].y / self.detailDescriptionLabel.font.lineHeight;
Run Code Online (Sandbox Code Playgroud)
这里的字体也是零.line设置为-2147483648,这显然不是我想要的.