Asp*_*pyn 5 iphone slider subview uiview uislider
当我将我的滑块添加为除self.view之外的任何视图的子视图时,它不起作用(不滑动)但是当它是self.view的子视图时它工作正常.您可以在self.view之外的其他视图中看到它,但它不起作用.
这是我的代码:
alphaSlider = [[UISlider alloc] initWithFrame:CGRectMake(0, 0, 90, 10)];
[alphaSlider setMinimumValue:0.01];
[alphaSlider setMaximumValue:1];
[alphaSlider setValue:0.5];
[alphaSlider setUserInteractionEnabled:YES];
[alphaSlider addTarget:self action:@selector(alphaSliderDidChange:) forControlEvents:UIControlEventValueChanged];
alphaSlider.continuous = YES;
[submenu addSubview:alphaSlider];
Run Code Online (Sandbox Code Playgroud)
有任何解决这个问题的方法吗?
Dav*_*aun 10
可能是子菜单未启用用户交互.
[submenu setUserInteractionEnabled:YES];
Run Code Online (Sandbox Code Playgroud)
另一种可能性是滑块的框架位于子菜单框架之外
由于UIViews的clipsToBounds属性默认为NO,因此滑块不会被剪裁,尽管它不在子菜单的框架之外.这意味着子菜单的框架不会覆盖滑块,并且无法将子菜单中的触摸事件传递到子菜单的滑块.设置子菜单的背景颜色并确认滑块完全位于子菜单的框架中.
[submenu setBackgroundColor:[UIColor blueColor]];
Run Code Online (Sandbox Code Playgroud)
子菜单的框架可能类似于(0,0,0,0).
包括
NSLog(@"%f, %f, %f, %f", submenu.frame.origin.x, submenu.frame.origin.y, submenu.frame.size.width, submenu.frame.size.height);
Run Code Online (Sandbox Code Playgroud)
你也可以这样做
[submenu setClipsToBounds:YES];
Run Code Online (Sandbox Code Playgroud)
如果滑块消失,则子菜单的框架不好.
检查滑块的框架高度是否太小,无法进行交互.10磅可能太小了.
从iOS 8开始,我的滑块也停止工作.
过去,像UISlider,UISwitch和UIPickerView这样的UIViews的帧高已经固定为某个预定义的值.您可以设置框架高度,但会被忽略.而不是试图记住,"iPad/iPhone上的风景中UISlider的高度是多少?",我一直将高度设置为0并让操作系统分配默认值.
David Braun的回答让我意识到我的UISlider框架的高度为0会导致用户无法进行交互.
| 归档时间: |
|
| 查看次数: |
6817 次 |
| 最近记录: |