UIImageView 未显示在 MKMapView 之上
Posted
技术标签:
【中文标题】UIImageView 未显示在 MKMapView 之上【英文标题】:UIImageView not showing on top of MKMapView 【发布时间】:2014-07-20 14:36:17 【问题描述】:在 IB 中,我在 MKMapView 顶部添加了一个 UIImageView(它横跨底部标签栏上方的整个屏幕)。 UIImageView 应代表地图图例。
我为 UIImageView 创建了一个 IBOutlet,并在我的 mapViewController 的 .m 文件中合成了它。我正在使用以下代码行以编程方式设置图像:
[legend setImage:[UIImage imageNamed:@"maplegend.png"]];
我希望这张图片一直出现在 MKMapView 的右下角。
但是当我运行我的项目时没有显示图像。
请指导。
【问题讨论】:
【参考方案1】:我曾经遇到过同样的问题。我通过将视图彼此相邻而不是在视图层次结构中彼此重叠来解决它。
视图层次结构将如下所示
containerView (UIView
)
mapView (MKMapView
)
myBanner (UIImageView
)
(在这种情况下为containerView.subviews == @[mapView, myBanner]
)
myBanner 仍然可以与 mapView 重叠,因为索引较高的视图将被放置在索引较低的视图之上。
这行不通:
containerView (UIView
)
myBanner (UIImageView
)
mapView (MKMapView
)
我不是 100% 确定,但我认为 MKMapView
存在问题:它只是不希望您在其上放置子视图。
如果您还希望您的图例可点击(即不接受触摸事件),则必须为containerView
创建自己的UIView
子类并覆盖-hitTest:withEvent:
方法...
【讨论】:
啊!我正在做与您建议的相同的事情,但图像被底部的标签栏隐藏了。你的答案是正确的。谢谢!以上是关于UIImageView 未显示在 MKMapView 之上的主要内容,如果未能解决你的问题,请参考以下文章
UIImageView 未显示在 UITableView 标题中
UIToolbar 和 UIImageView 未显示在模拟器中
当我从与移动设备中的图库相同的多个 UIImageView 显示中点击 UIImageView 时,未调用 touchesBegan 方法