如何在MKAnnotationView标题中添加UITextField [英] how to add UITextField in MKAnnotationView Title

查看:64
本文介绍了如何在MKAnnotationView标题中添加UITextField的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试这样,但这是行不通的.我该怎么办?

I try like this, but it isn't work. How can i do this ?

MKAnnotationView *pointTest = [[MKAnnotationView alloc] init];
    pointTest.annotation = point;
    pointTest.draggable= YES;

    UITextField *pointText = [[UITextField alloc] initWithFrame:CGRectMake(location.latitude, location.longitude, 100, 20)];
    pointText.backgroundColor = [UIColor blackColor];
    pointTest.rightCalloutAccessoryView = pointText;
    pointTest.canShowCallout = YES;
    [self.userMap addAnnotation:pointTest];

推荐答案

首先,您为 pointText UITextField,纬度和经度不是屏幕坐标,应按以下方式实现:

First of all, you are setting a wrong frame for the pointText UITextField, latitude and longitude are not screen coordinates, it should be implemented like this:

CGFloat originX = 0; //Or other value
CGFLoat originY = 0; //Or other value
UITextField *pointText = [[UITextField alloc] initWithFrame:CGRectMake(originX, originY, 100, 20)];

您可能需要将canShowCallout设置为是":

You may also need to set canShowCallout to YES:

pointTest.canShowCallout = YES;

然后,您正在将rightCalloutAccessoryView设置为UITextField,这不是最好的选择.为此属性指定的常见视图是UIButton对象,其类型设置为UIButtonTypeDetailDisclosure.对于标题和字幕,我更喜欢使用 annotation 属性:

Then, you are setting the rightCalloutAccessoryView as an UITextField, which is not the best thing to do. A common view to specify for this property is UIButton object whose type is set to UIButtonTypeDetailDisclosure. For titles and subtitles, I prefer using the annotation attribute:

point.title = "Your title";
pointTest.annotation = point;

您应检查苹果文档.

You should check the apple documentation.

这篇关于如何在MKAnnotationView标题中添加UITextField的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆