将UISlider添加到UINavigationBar

时间:2013-11-14 16:23:40

标签: ios uinavigationcontroller uislider

尝试将UISlider添加到UINavigationBar。我将它显示在滑块显示的位置,但在尝试更改值时,它不会移动。这是viewWillAppear中的代码。请注意,这是在子视图上,而不是主父视图。

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

2 个答案:

答案 0 :(得分:1)

尝试将其添加到titleView

中视图控制器导航项的viewWillAppear:
UISlider *theslider = [[UISlider alloc] init];
...
self.navigationItem.titleView = theslider;

答案 1 :(得分:1)

要回答您的具体问题,我认为viewofslider的宽度太窄,为40.0,因此UISlider无法接触到该触摸。

如果您将viewofslider的宽度更改为100.0,则应该可以与其进行互动。

但是,我同意rmaddy的评论,你只需将滑块添加到导航栏,就不需要UIView