TouchesEnded检测到,但没有触及开关

时间:2013-02-20 16:48:28

标签: ios uiactionsheet

我正在使用Tapku库中的日历视图(https://github.com/devinross/tapkulibrary)并将其嵌入到UIActionSheet中 - 替代现有的UIDatePicker。

我遇到的麻烦是当所选月份跨越6周时,最后一行不会从touchesBegan获取任何触摸,但会在touchesEndedtouchesMoved中选择它们

May 2013 - 5 weeks http://imageshack.us/a/img62/6280/iossimulatorscreenshot2.png June 2013 - 6 weeks http://imageshack.us/a/img41/6280/iossimulatorscreenshot2.png 所以在上面的截图中,从6月30日开始的行没有任何接触,除非它们来自该行之上的某个地方,然后进入它。

我认为某些地方的边界或框架设置不正确,我尝试输出一些关于我在最后一行touchesEnded收到的触摸的信息并得到:

$0 = 0x1f869670 <UITouch: 0x1f869670> phase: Ended tap count: 1 
window: <_UIAlertOverlayWindow: 0x1e56b1e0; frame = (0 0; 320 568); layer = <UIWindowLayer: 0x1e56b300>> 
view: <TKCalendarMonthTiles: 0x1f86b6d0; 
frame = (0 1; 320 265); layer = <CALayer: 0x1f872fb0>> 
location in window: {67, 551.5} previous location in window: {67, 550} 
location in view: {67, 247.5} previous location in view: {67, 246}

目标视图的框架看起来是否正确,还有什么可能缺失?

1 个答案:

答案 0 :(得分:0)

最终,日历的超级视图的框架没有正确调整大小并导致这种不一致。需要注意的是,由于默认UIView属性clipsToBoundsNO,因此视图太小而无法显示其内容仍会显示内容,但不允许用户在其边界之外进行交互。< / p>