当我点击以编程方式创建的uilabel时,uislider值会发生变化

时间:2013-04-03 06:42:54

标签: iphone ios uilabel uislider

我有一个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条应移动到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值。

2 个答案:

答案 0 :(得分:0)

  

如何获取标签的文字大小并能够更改   点击/触摸任何标签时的uislider值。

您可以通过以下方式获取 fontsize

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);

答案 1 :(得分:0)

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

[yourSlider setValue:yourFloatValue];