UISlider取决于设备改变宽度(UISlider changing width dependin

2019-10-17 07:44发布

我在的iOS编程初学者,我正在寻找一个回答我的问题。

我有一个UITableViewCell内UISlider,我试图让这个配置:标签的滑盖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是一个UITableViewCell与UISlider @property)

谢谢大家!

Answer 1:

而不是硬编码值,你可以得到的容器意见宽度,并设置滑块宽度为它的一个百分比。

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;


Answer 2:

您可以通过调用获取设备的尺寸self.view

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

之后,你可能想减法或除法根据您的视图的大小



文章来源: UISlider changing width depending on device