1

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

我在 UITableViewCell 中有一个 UISlider,我正在尝试获得这种配置:Label-Slider-DetailLabel(dynamic)。

这是我的代码:

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)

谢谢大家!

4

2 回答 2

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;
于 2012-10-14T18:34:26.220 回答
0

you can get the size of a device by calling self.view

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

after you may want to subtract or divide depending on your view's size

于 2012-10-14T19:06:03.250 回答