1
votes

I'm a beginner in iOS programming and I'm looking for an answer to my question.

I have a UISlider inside a UITableViewCell and I'm trying to get this disposition: Label-Slider-DetailLabel(dynamic).

This is my code :

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);

The last line is the way I used to place my slider the way I wanted to be. It works great for iPad but not at all for the iPhone version. Is there any way to resize the width of my slider automatically depending on the device ?

(SliderCell is a UITableViewCell with a UISlider @property)

Thank you all in advance!

2
Attaching random virew controllers' view to a haighly dynamic UITableViewCell is not a good idea. - user529758
Is there any way to have this disposition? - Hetana
Does anyone has an idea? - Hetana
Why dont you just add a custom made slider directly to the cells content view instead of adding a UITableViewCell which has slider. - Rakesh
I'm juste taking back the code for my bachelor project, I juste have to change the design and the disposition of certain elements. Here if I understand, I'm surimposing two views? - Hetana

2 Answers

2
votes

Instead of hard coding the values, you could get the container views width and set the sliders width as a percentage of it.

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
votes

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