所以我使用的是UISegmented所示的控制UISegmentedControl - 最后段不容易选择
最后一段“5”是非常努力,击中我的手指。我从模拟器使用游标注意到,只有大约一半的段会响应。任何一半的权利基本上是一个死区。我不确定是什么导致了这个问题,因为我已经将这个分段控件移到顶端,它仍然执行相同的操作。但是,如果我将分段控件移动到屏幕中心,则5段整个表面区域会响应触摸事件...
我不知道如何解决此问题。
所以我使用的是UISegmented所示的控制UISegmentedControl - 最后段不容易选择
最后一段“5”是非常努力,击中我的手指。我从模拟器使用游标注意到,只有大约一半的段会响应。任何一半的权利基本上是一个死区。我不确定是什么导致了这个问题,因为我已经将这个分段控件移到顶端,它仍然执行相同的操作。但是,如果我将分段控件移动到屏幕中心,则5段整个表面区域会响应触摸事件...
我不知道如何解决此问题。
要了解可能重叠的代码,添加此UIView的类别:
@interface UIView (Dumper_Private)
+ (void)appendView:(UIView *)v toStr:(NSMutableString *)str;
@end
@implementation UIView (Dumper_Private)
+ (void)appendView:(UIView *)a toStr:(NSMutableString *)str
{
[str appendFormat:@" %@: frame=%@ bounds=%@ layerFrame=%@ tag=%d userInteraction=%d alpha=%f hidden=%d\n",
NSStringFromClass([a class]),
NSStringFromCGRect(a.frame),
NSStringFromCGRect(a.bounds),
NSStringFromCGRect(a.layer.frame),
a.tag,
a.userInteractionEnabled,
a.alpha,
a.isHidden
];
}
@end
@implementation UIView (Dumper)
+ (void)dumpSuperviews:(UIView *)v msg:(NSString *)msg
{
NSMutableString *str = [NSMutableString stringWithCapacity:256];
while(v) {
[self appendView:v toStr:str];
v = v.superview;
}
[str appendString:@"\n"];
NSLog(@"%@:\n%@", msg, str);
}
+ (void)dumpSubviews:(UIView *)v msg:(NSString *)msg
{
NSMutableString *str = [NSMutableString stringWithCapacity:256];
if(v) [self appendView:v toStr:str];
for(UIView *a in v.subviews) {
[self appendView:a toStr:str];
}
[str appendString:@"\n"];
NSLog(@"%@:\n%@", msg, str);
}
@end
,并呼吁[UIView dumpSuperviews:theSegmentedControl];
是的,我测试了所有顶部的视图,它似乎是导致此问题的TableView。 'UITableView'覆盖屏幕的90%和窗口的整个宽度。我不确定为什么它会导致屏幕右侧的条子无法响应,特别是因为TableView被隐藏了。 – Alan 2013-05-10 22:35:26
隐藏视图是否真的干扰了触摸操作?我最终回到代码并使用'bringSubviewToFront'来操作视图,似乎解决了这个问题。我不确定这是否是处理这个问题的最好方法。你有什么想法吗? – Alan 2013-05-10 23:00:57
这不是一个坏主意方法来解决它。 – 2013-05-11 11:37:58
几乎肯定有一些其他的看法,透明,但重叠的分段控制。 – 2013-05-10 21:50:17
@DavidH你是对的。它是顶部 – Alan 2013-05-10 22:33:54