如何在UITextView中将图像替换为图标

时间:2013-12-13 04:17:21

标签: ios uitextview

我遇到问题,如何将uitextview中的图片替换为图标,当我点按此图标时,图片显示

此示例enter image description here

感谢每一个

3 个答案:

答案 0 :(得分:1)

您可以将图片视图添加为UITextView的子视图

使用图片创建imageView:

UIImageView *imageView = [[UIImageView alloc] initWithImage:yourImage];
[imageView setFrame:yourFrame];
[yourTextView addSubview:imageView];

如果你想通过点击显示图片,那么请点击 UIButton &为它分配图像&将其添加为UITextView的子视图 点按后只需将UIButton的图像从图标更改为图像

答案 1 :(得分:1)

创建对imageview的引用并将其从superview中删除,并使用您的图标图像创建新的图像视图,并将其添加到textview中。如果您在textview的顶部添加图像视图,它将在textview中隐藏您的文本。

添加textview

.m文件中的

> UITextView *textView; UIImageView *testImageView;
> 
> -(void)addMyTextViewWithImage{
>     self.textView = [[UITextView alloc]initWithFrame:CGRectMake(50.0f, 50.0f, 200.0f, 200.0f)];
>     self.textView.inputView = [[UIView alloc]initWithFrame:CGRectMake(0.0f, 0.0f, 0.0f, 0.0f)];
>     self.textView.backgroundColor = [UIColor blackColor];
>     self.textView.textColor = [UIColor whiteColor];
>     self.textView.font = [UIFont fontWithName:@"HelveticaNeue-UltraLight" size:30];
>     self.textView.text = @"Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmo to factor tum
> poen legum odioque civiuda.";
>     self.testImageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"yourimage.png"]];
>     [self.testImageView setFrame:CGRectMake(10, 10, 150, 30)];
>     [self.textView addSubview:self.testImageView];
>     [self.view addSubview:self.textView]; }
> 
> -(void)removeAndUpdateWithIconImage{
>        //Remove my imageview from text view
>       [self.testImageView removeFromSuperView];
>       
>       //Add the imageview with desire frame and icon image
>           self.testImageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"icon.png"]];
>           [self.testImageView setFrame:CGRectMake(10, 10, 150, 30)];
>          [self.textView addSubview:self.testImageView];
>     
> 
> }

答案 2 :(得分:1)

图像是存储在NSAttributedString中的NSTextAttachment,因此要将其更改为您需要创建自己的NSTextAttachment子类并用您自己的子类替换默认附件的图标。在子类中,您需要将图标作为图像返回。我做了类似的事情,除了我只是调整图像大小以适应设备显示区域,但我保留原始图像,以便可以全分辨率查看。如果这听起来像你想要做的那样,请告诉我,我会挖出代码。顺便说一句,你可以查看免费的应用程序,看看uitextview是如何工作的,它叫做iWalletFree,或者是iProjectFree。有Mac和iOS版本,每个代码都不同。

这是link to the post where I just posted some details on image handling in UITextView and NSTextView