所以我使用的是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