0

我有一个 uislider (*fontSizeSlider),它以编程方式更改创建的 uilabel 的文本大小。当我在视图中有 2 到 5 个以编程方式创建的具有不同文本大小的标签时,我希望 UISlider 位置在触摸时更改为每个标签的相应值(1-50 是 uislider 的最小和最大大小)(touchesbegan )。

这样,如果 label1 textsize 为 10,label2 textsize 为 20,label5 textsize 为 50(注意:使用 uislider 更改文本大小)。当我单击(触摸)label1或label2或label5时,我希望Uislider显示相应的值(我的意思是如果选择了Label1,则Uislider bar应移至10,并且在选择Label2时,则应移至20。 )

这是我在 touchesbegan 上尝试过的示例代码,

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
 touch=[touches anyObject];
 CGPoint fontSliderLocation = [touch locationInView:fontSizeSlider];
        NSLog(@"Location of x %f and Location of y %f", fontSliderLocation.x, fontSliderLocation.y);

这不是完整的代码,我只是把它放在这里有点意义。使用上面的代码,我可以获得触摸标签的 x 和 y 位置。但是,当我单击/触摸任何标签时,如何获取标签的文本大小并能够更改 uislider 值。

4

2 回答 2

0

当我单击/触摸任何标签时,如何获取标签的文本大小并能够更改 uislider 值。

您可以通过以下方式获取字体大小:

NSString *fontName=self.label.font.fontName;
CGFloat fontSize=self.label.font.pointSize;

在这个代表上:

-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event;
    UITouch *touch=[touches <object>];
    if(touch.view.tag == <your Tag>){
       slider.value=<the value you want>;
    }
    else...
 }

编辑:为了了解颜色使用:

UIColor *color=self.textField.textColor;
CGFloat r,g,b,a;
[color getRed:&r green:&g blue: &b alpha: &a];
NSLog(@"%f, %f, %f",r, g, b);
于 2013-04-03T06:49:00.007 回答
0

您可以像上面那样获得字体名称和字体大小,UILable还可以使用如下方法更改滑块的值setValue...

[yourSlider setValue:yourFloatValue];
于 2013-04-03T06:51:30.190 回答