UIBarButtonItem具有灵活大小的自定义视图

时间:2014-10-03 22:38:11

标签: ios objective-c uibarbuttonitem uitoolbar uislider

是否有可能使用包含UISlider的自定义视图获取UIBarButtonItem,以使用系统样式UIBarButtonSystemItemFlexibleSpace自动调整大小与UIBarButtonItem类似?

例如(为了简洁起见,我省略了设置框架并将工具栏作为子视图添加到现有视图中)

UISlider *slider = [UISlider new];
slider.minimumValue = 0;
slider.maximumValue = 1;
slider.value = 0.5

UIBarButtonItem *sliderItem = [[UIBarButtonItem alloc] initWithCustomView:slider];
UIBarButtonItem *exampleItem = [[UIBarButtonItem alloc] initWithTitle:@"Example" style:UIBarButtonItemStylePlain target:nil action:nil];

UIToolbar *toolbar = [UIToolbar new];
toolbar.items = @[sliderItem, exampleItem];

作为工具栏的想法是屏幕的整个宽度,exampleItem由于其标题的本地化而可以是可变宽度,slideItemUIBarButtonSystemItemFlexibleSpace类似地调整大小以占用工具栏中的剩余空间。

但是结果是滑块保持占用你给它的帧(或者如果省略的话是默认/最小帧),而下一个按钮就坐在它上面。

我通过更改滑块的自动调整大小掩码尝试了以下答案make a UIBarButtonItem with customView behave like Flexible-Space item中提到的方法,但似乎无效(问题是关于使用UITextField而不是{ {1}}这可能是原因。)

我还尝试使用包含UISlider作为自定义视图的其他UIView拦截任何UISlider次调用,但实际上它从未被我怀疑调用过。

0 个答案:

没有答案