【问题标题】:Shift image added on text view on editing text编辑文本时在文本视图上添加的移动图像
【发布时间】:2012-04-24 04:03:17
【问题描述】:

我有一个文本视图,我需要在文本视图中添加图像。文本视图的想法可以假设为文本和图像以及图像文本之后等等。我可以在文本视图上添加图像,但我的问题是当我再次编辑我的文本视图,文本位于图像后面。我想要的是假设图像低于我的光标位置并且我正在编辑文本,所以我的图像也应该向前或向后移动。请帮助我如何实现在编辑文本时移动图像的功能。我的应用部署目标是 5.0,因此我们可以包含 ios 5.0 中提供的新功能。

在图像中显示了在编辑文本时文本如何位于图像视图后面。这就是我需要转换图像视图的原因。

请帮帮我。我被困在这里了。

提前致谢。

【问题讨论】:

    标签: iphone objective-c ios5 uiimageview uitextview


    【解决方案1】:

    老兄用我的代码...

    - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;
    {
    if ( [text isEqualToString:@"\n"] ) {
    
    }
    else
    {
        NSString *yourstring = [[NSString alloc]init];
        yourstring = textView.text;
        CGSize s = [yourstring sizeWithFont:[UIFont systemFontOfSize:15] //define your textview font size
                          constrainedToSize:CGSizeMake(self.view.bounds.size.width - 40, MAXFLOAT)  // - 40 For cell padding
                              lineBreakMode:UILineBreakModeWordWrap];   
        CGRect frame = CGRectMake(0.0f, s.height+10, 320.0f, 20);//use YourImageView. height and width 
        YourImageView.frame=frame;
    }
    return YES;
    }
    

    让我知道。如果您发现任何困难...

    已编辑 *附加....*

    //imgSwipe2 is my UIImgaeView you can use your imageview. May Be i forgot to release some object and i am sure that you can handle but it's working fine,
    
    -(void)textViewDidChangeSelection:(UITextView *)textView
     {
      NSRange range = textView.selectedRange;
    if(range.location<textView.text.length)
    {
        NSString * firstHalfString = [txtView.text substringToIndex:range.location]; 
    
        CGSize s = [firstHalfString sizeWithFont:[UIFont systemFontOfSize:15] 
                               constrainedToSize:CGSizeMake(self.view.bounds.size.width - 40, MAXFLOAT)  // - 40 For cell padding
                                   lineBreakMode:UILineBreakModeWordWrap];   
    
        if(s.height<imgSwipe2.frame.origin.y)
        {
            // You can use this code any number of image
    
            imgSwipe2.frame = CGRectMake(imgSwipe2.frame.origin.x, s.height, imgSwipe2.frame.size.width, imgSwipe2.frame.size.height);  
    
    
        }
        else
        {
            // Do what ever you want to do
    
            NSString * firstString1 = textView.text;                
            CGSize s = [firstString1 sizeWithFont:[UIFont systemFontOfSize:15] 
                                constrainedToSize:CGSizeMake(self.view.bounds.size.width - 40, MAXFLOAT)  // - 40 For cell padding
                                    lineBreakMode:UILineBreakModeWordWrap];   
            imgSwipe2.frame = CGRectMake(imgSwipe2.frame.origin.x, s.height, imgSwipe2.frame.size.width, imgSwipe2.frame.size.height);
    
    
        }   
      }
    }
    

    希望,这会帮助你...享受...

    【讨论】:

    • 它对我来说就像一种魅力。我无话可说。非常感谢你的帮助。我希望我能多次投票。但它会很好地与一张图片,您能否建议如何将文字和图片之类的内容绘制出来,然后在图片后写文字。如果您能帮我解决这个问题,请提供帮助。
    • 您的意思是要在当前情况下更改图像和文本的顺序吗?你能描述一下你的场景吗?所以,我能理解你到底想要什么。
    • 我的场景是:-有一个文本视图,用户可以在其中编写文本并添加多个图像。现在用户键入一行文本并添加一个图像。(例如。abcdefgh 和 image1)。现在用户可以在图像下方写入文本(例如,abcdefgh 和 image1 以及 ijklmnop 和 image2)和文本等等。这就是我必须实现的方式。现在,如果用户在这种情况下将光标移动到 ijk 上,图像 1 将驻留在它的位置,但图像 2 将向下移动。如果用户将光标移动到 abc 并从那里开始写入,那么在这种情况下,图像图像 1 和图像 2 都会向下移动。
    • 请查看上面评论中提到的场景并提出建议。
    • 我现在有工作..我可以解决你的问题,但需要一些锻炼时间。所以明天午夜前会回复你。
    猜你喜欢
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    • 2012-07-15
    • 2017-06-17
    相关资源
    最近更新 更多