我有一个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值。
答案 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];