【问题标题】:Problems with touch position after scrolling in UIScrollView that contains a UITextView and UIImageView在包含 UITextView 和 UIImageView 的 UIScrollView 中滚动后出现触摸位置问题
【发布时间】:2011-08-11 21:53:39
【问题描述】:

我试图在用户在 UITextView 上方移动时绘制用户的触摸,然后将其保存为 UIImageView 的图像。由于我希望图像与 UITextView 中的文本一起滚动(当有长文本需要滚动时,图像的位置应取决于文本),因此我在 UIScrollView 中添加了 UIImageView 和 UITextView。在直接可见的视图区域中滚动和保存为图像没有问题。但是,触摸区域实际上仅限于直接可见区域(加载时滚动视图的大小)。在我滚动之后,用户的触摸痕迹都被推高到原始视图的大小。

在 ViewWillLoad 我有这些:

UIImage *image = [UIImage imageNamed:@"abc.png"];  

(abc 的大小为 670X5000,我不需要它完全显示,我把它做得超长,这样即使对于带有大量文本的 textView 也能工作......这似乎对你没有帮助...)

imageView = [[UIImageView alloc] initWithImage:image] ;
imageView.frame = CGRectMake (0,0,670,750); 
scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(45, 100, 670, 850)]; 
textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, 670, 750)];

(纵向..横向的另一种设置)

我知道我设置错误,但我不知道如何继续。

我试过玩边界,但效果不大。触摸仍然不正确(就像我滚动后会触摸视图中的一个点,而轨迹实际上比那个点高得多......)

【问题讨论】:

  • 我要回答我自己的问题...似乎无法让 UITouch 识别当前显示器之外的先前触摸点(因此屏幕尺寸)...它基本上不允许可滚动的触摸区域,因此跟踪将不正确。

标签: iphone uiscrollview uiimageview touch coordinates


【解决方案1】:

尝试使用 UITouch 方法“locationInView”:

CGPoint pointInScrollview =  [touch locationInView:scrollView];

【讨论】:

  • 感谢您的回复...但是,我不知道如何使用触摸位置...您能详细说明一下吗?
  • 您可以将其用于您在绘图代码中绘制的点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-19
  • 1970-01-01
  • 1970-01-01
  • 2015-11-04
  • 1970-01-01
  • 1970-01-01
  • 2010-11-06
相关资源
最近更新 更多