2012-10-14 69 views
1

我是iOS编程的初学者,我正在寻找我的问题的答案。UISlider更改宽度取决于设备

我有一个UISlider内的UITableViewCell,我试图得到这种处置:Label-Slider-DetailLabel(动态)。

这是我的代码:

cell = [tableView dequeueReusableCellWithIdentifier:@"SelectedMeetingCell"]; 
[cell.textLabel setText:@"Duration"]; 
[cell.detailTextLabel setText:[Utilities StringFromDuration:Agenda.InitialDuration.doubleValue]]; 

sliderCell = (SliderCell*)[[UIViewController alloc] initWithNibName:@"SliderCell" bundle:nil].view; 
[sliderCell setDelegate:self]; 
[sliderCell.slider setValue:Agenda.InitialDuration.doubleValue]; 

[cell.contentView addSubview:sliderCell]; 

sliderCell.slider.frame = CGRectMake(100, 0, 500, 44); 

最后一行是我曾经把我的滑块我想是这样的方式。它适用于iPad,但不适用于iPhone版本。有没有办法根据设备自动调整滑块的宽度?

(SliderCell是一个UISlider @property一个UITableViewCell)

谢谢大家提前!

+0

附加随机virew控制器的视图高度动态的UITableViewCell不是一个好主意。 – 2012-10-14 16:49:51

+0

有什么办法可以有这种性格? – Hetana

+0

有没有人有想法? – Hetana

回答

2

您可以获取容器视图宽度并将滑块宽度设置为百分比,而不是对值进行硬编码。

CGRect superViewFrame = slider.superView.frame; 
CGRect sliderFrame = slider.frame; 
sliderFrame.size.width = <your choice for eg, superViewFrame.size.width * 0.3f> 
sliderFrame.origin.x = <your choice for eg, superViewFrame.size.width * .2f> 
slider.frame = sliderFrame; 
+0

但你怎么只得到滑块宽度? – Hetana

+0

通过获取滑块的框架,检查编辑。 – Rakesh

+0

好吧,现在问题是从iPad到iPhone造成问题的X位置......我想我也会做一个百分比! – Hetana

0

您可以通过调用self.view

sliderCell.slider.frame = CGRectMake(100, 0, self.view.frame.size.width, self.view.frame.size. height);

获取设备的尺寸后,您可能需要减法或除法根据您的视图的大小