在编辑文本的文本视图上添加了移位图像

时间:2012-04-24 04:03:17

标签: iphone objective-c ios5 uiimageview uitextview

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

在图像中显示如何编辑文本文本在图像视图后面。这就是我需要移动图像视图的原因。

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

提前致谢。

1 个答案:

答案 0 :(得分: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);


    }   
  }
}

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