UISlider根据设备改变宽度

时间:2012-10-14 16:48:11

标签: iphone ios ipad uitableview uislider

我是iOS编程的初学者,我正在寻找我的问题的答案。

我在UITableViewCell中有一个UISlider,我正试图获得这种处置: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)

提前谢谢大家!

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

您可以通过调用self.view

来获取设备的大小

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

您可能希望根据视图的大小进行减法或除法