在UIImageView上输入文本

时间:2009-09-17 05:33:36

标签: iphone text editing

是否可以在UIImageView上允许用户输入文本,就像画家中的文本工具一样?

我在这个主题上找不到任何资源?

2 个答案:

答案 0 :(得分:5)

UIImageView并非旨在包含任何文字,但您可以在其中或在其顶部/下方添加UILabelUITextField,具体取决于您要执行的操作。

例如,假设您希望允许用户编辑图像内的一段文本。你可以这样做:

UIImage* image = [UIImage imageNamed:@"my_image.png"];
UIImageView* imageView = [[UIImageView alloc] initWithImage:image];
imageView.userInteractionEnabled = YES;
UITextField* textField = [[UITextField alloc]
                          initWithFrame:CGRectMake(10, 10, 50, 20)];
textField.placeholder = @"type here";
[imageView addSubview:textField];

// You might also want to set the imageView's frame.
[self.view addSubview:imageView];

如果您将UITextField添加为UIImageView的子视图,则必须将userInteractionEnabled设置为YES,因为默认为NO超级视图(默认情况下,大多数YES s通常为UIView。)

<强>附录

如果您希望用户能够单击图像中的任何位置来编辑文本,可以采用以下方法:子类UIControl并添加UIImageView和{{1} }作为其子视图,并将UITextField的点击操作与UIControl相关联。这样的事情(警告:没有经过测试的代码,但它传达了一般的想法):

UITextField

答案 1 :(得分:0)

使用当前的iPhone API(3.1)无法做到这一点。您需要创建自己的自定义uitextfields和自己的图像渲染方法,以将图层组合成带标题的照片。