如何让 mapView 上方的文本字段 hover/float

How to let a textfield hover/float above a mapView

我正在制作一个使用 MapView 的应用程序,现在我已将文本字段定位在地图视图上方,就像在图像上一样。但我真的想全屏显示地图视图并让文本字段 float/hover 在上面。有人知道我怎么能做出那样的东西吗?我在互联网上搜索了很多,但找不到任何线索。希望有人能帮助我开始。

好的,大概您的地图视图的所有四个边都固定在其父视图上?按如下方式设置您的约束,而不是如何将 mapview 固定到文本字段,而是固定到 superview。

http://imgur.com/a/8YmXL

要添加投影,请在 UITextField 上设置以下属性:

textField.layer.shadowOpacity = 1.0
textField.layer.shadowRadius = 0.0
textField.layer.shadowColor = UIColor.blackColor().CGColor
textField.layer.shadowOffset = CGSizeMake(0.0, -1.0)

调整设置,直到您对阴影的外观满意为止。

当用户在地图上平移时关闭键盘非常简单。您只需要实现委托。编辑您的 class 使其看起来像这样:

class MapViewController: UIViewController, MKMapViewDelegate {
    @IBOutlet var mapView: MKMapView!
    @IBOutlet var textField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
        mapView.delegate = self
    }

    func mapView(mapView: MKMapView, regionDidChangeAnimated animated: Bool) {
        textField.resignFirstResponder()
    }
}