是否可以在UIImageView上允许用户输入文本,就像画家中的文本工具一样?
我在这个主题上找不到任何资源?
答案 0 :(得分:5)
UIImageView
并非旨在包含任何文字,但您可以在其中或在其顶部/下方添加UILabel
或UITextField
,具体取决于您要执行的操作。
例如,假设您希望允许用户编辑图像内的一段文本。你可以这样做:
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和自己的图像渲染方法,以将图层组合成带标题的照片。