在 UIScrollView 的 tiledlayer 上方叠加图像

Posted

技术标签:

【中文标题】在 UIScrollView 的 tiledlayer 上方叠加图像【英文标题】:Overlaying image above UIScrollView's tiledlayer 【发布时间】:2010-01-07 19:51:22 【问题描述】:

我的 iPhone 应用程序向用户展示了一些海量图像,我已经成功地将它们平铺并使用 UIScrollView 让他们可以平移并详细查看其中的一部分。现在我想在该背景图像上方绘制点,并在用户平移/缩放时让它们四处移动,基本上就像在布告板上放置一个图钉一样。我不想永久标记图像,我可能需要移动它或添加更多图像。我的第一次尝试 id 是下面的代码,我想我可以把它放到一个子视图中,它会出现在角落里,然后我会担心将它从原点和类似的东西中偏移。使用此代码,我在 UIScrollView 中的任何地方都看不到我的标记,因此我正在寻求帮助。

myContentView = [[UIView alloc] initWithFrame:imageRect];
UIImageView *imageView = [[UIImageView alloc] initWithImage:marker];
[myContentView.layer addSublayer:tiledLayer];
[myContentView addSubview:imageView];

【问题讨论】:

【参考方案1】:

我要做的是制作另一个与 myContentView 大小相同的 UIView *mapView 来保存 tiledLayer,并让 imageView 和新 mapView 处于同一级别,而不是另一个的子视图。

myContentView = [[UIView alloc] initWithFrame:imageRect];

UIView  *mapView = [[UIView alloc] initWithFrame:imageRect];
[mapView addSublayer:tiledLayer];
[myContentView addSubview:mapView];

UIImageView *imageView = [[UIImageView alloc] initWithImage:marker];
[myContentView addSubview:imageView];

【讨论】:

我修改了第三行以使其能够编译,但我看到 UIScrollView 没有任何变化。背景图像仍然出现,但没有绘制任何内容。我还颠倒了子视图的顺序,以防它被绘制在它下面,但没有运气。只是为了证明我得到了正确的标记,我尝试将它设置为同时出现在屏幕上的按钮的图像,结果它全是白色的,所以那一端有问题,但因为没有出现大的白色方块在我的背景图片上,我想我还没有画到那个滚动视图中 编辑是为了使它 [mapView.layer addSubLayer:tiledLayer]; 抱歉,错误出现在我的代码中的其他地方。您需要的所有建议就是那个小小的 .layer 东西,它解决了我的问题。谢谢。

以上是关于在 UIScrollView 的 tiledlayer 上方叠加图像的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView 内的 UIScrollView 时滚动

UIScrollView 子视图中滚动事件的锁定处理(在 UIScrollView 超级视图内)

UIButton 没有响应嵌套在另一个 UIScrollView 中的 UIScrollView 中的触摸

如何以编程方式在 UIScrollview 中创建 UIScrollview

在 UIScrollView 中居中 UIButtons

Windows Phone 7 室内地图控制