2013-11-14 6 views
0

Пытается добавить UISlider в UINavigationBar. У меня есть это, где отображается слайдер, но при попытке изменить значение он не будет двигаться. Вот код в viewWillAppear. Обратите внимание, что это находится на дочернем представлении, а не на основном родительском представлении.Добавить UISlider To UINavigationBar

UIView *viewofslider = [[UIView alloc] initWithFrame:CGRectMake(160, 10, 40, 30)]; 
    UISlider *theslider = [[UISlider alloc] init]; 
    [theslider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged]; 
    [theslider setBackgroundColor:[UIColor clearColor]]; 
    theslider.minimumValue = 50.0; 
    theslider.maximumValue = 150.0; 
    theslider.continuous = YES; 
    theslider.value = 100.0; 
    [viewofslider addSubview:theslider]; 
    [self.navigationController.navigationBar addSubview:viewofslider]; 
+0

Установите начало представления в 0,0, а не 160,10. Вам также необходимо установить рамку ползунка, чтобы она соответствовала правильному расположению в родительском представлении. Кроме того, зачем беспокоиться о 'UIView'? Просто добавьте 'UISlider' в навигационную панель. – rmaddy

+0

звучит так, будто ваш слайдер находится в ловушке под видом, который укладывается над ним. Следовательно, причина, по которой вы не можете взаимодействовать с ней. Возможно, вам придется перенести его на фронт. – ApolloSoftware

ответ

1

Чтобы ответить на конкретный вопрос, я думаю, что ширина viewofslider слишком узок в 40.0, так что прикосновение не подбирается UISlider.

Если вы меняете ширину viewofslider на 100.0, вы должны быть в состоянии взаимодействовать с ней.

Однако я согласен с комментарием rmaddy, что вы должны просто добавить ползунок в навигационную панель, нет очевидной необходимости в UIView.

0

Попробуйте добавить его в titleView навигационного элемента зрения контроллера в viewWillAppear:

UISlider *theslider = [[UISlider alloc] init]; 
... 
self.navigationItem.titleView = theslider; 
Смежные вопросы