2012-07-20 67 views
0

我在UITextView for iPhone Messaging应用程序中工作。我在UITextView上添加了一个UIImage作为子视图。我想调整像UITextView框架高度的UIImage框架大小。现在我已经为此编码了,但是当文本进入下一行并且字母很少时图像帧高度不会增加。在我们输入更多字符后,图像帧大小增加。可以跟踪文本在UITextView iPhone中进入下一行吗?

messageTextView = [[UITextView alloc] initWithFrame:CGRectMake(35, 5, 210, 30)]; 
    messageTextView.delegate = self; 
    messageTextView.backgroundColor = [UIColor clearColor]; 
    messageTextView.clipsToBounds = NO; 
    messageTextView.font = [UIFont fontWithName:@"Helvetica" size:14]; 

    textViewImageView = [[UIImageView alloc]initWithFrame: CGRectMake(0, 0, 210, 30)]; 
    textViewImageView.image = [UIImage imageNamed: @"textbg.png"]; 
    textViewImageView.contentMode = UIViewContentModeScaleToFill; 
    textViewImageView.contentStretch = CGRectMake(0.5, 0.5, 0, 0); 

    [messageTextView addSubview: textViewImageView]; 
    [messageTextView sendSubviewToBack: textViewImageView]; 
    [messageTextView addSubview:textViewLabel]; 
    [self.view addSubview:messageTextView]; 


-(BOOL) textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
{ 
     CGRect frame = messageTextView.frame; 
     frame.size.height = messageTextView.contentSize.height; 

     messageTextView.frame = CGRectMake(35, 5, 210, frame.size.height); 
     textViewImageView.frame = CGRectMake(0, 0, 210, frame.size.height); 
} 

你能请人帮忙解决增加的UIImageView高度的高度的问题,当文本进入下一行?提前致谢。

enter image description here

enter image description here

+0

你怎么可以添加一个子视图的UITextView? – 2012-07-20 15:12:00

+0

@luyuan确定它是任何方式来跟踪文本在UITextView中进入下一行?请帮帮我。 – Gopinath 2012-07-20 15:28:48

+0

你的代码似乎没问题,因为两个框架都有相同的高度。但为什么不尝试将messageTextView和textViewImageView添加到同一个视图并为它们设置完全相同的框架? – 2012-07-20 15:54:06

回答

0

enter image description here

变化

[messageTextView addSubview: textViewImageView]; 

textViewImageView = [[UIImageView alloc]initWithFrame: CGRectMake(0, 0, 210, 30)]; 

textViewImageView.frame = CGRectMake(0, 0, 210, frame.size.height); 

[messageTextView.superview addSubview: textViewImageView]; 

textViewImageView = [[UIImageView alloc]initWithFrame: CGRectMake(35, 5, 210, 30)]; 

textViewImageView.frame = CGRectMake(35, 5, 210, frame.size.height); 

正如我刚才测试的那样,它工作正常。

编辑2在我的测试中。

TestViewController.h

#import <UIKit/UIKit.h> 

@interface FirstViewController : UIViewController <UITextViewDelegate>{ 

} 

@property (nonatomic, strong) IBOutlet UITextView *textView; 
@property (nonatomic, strong) IBOutlet UIImageView *imageView; 


@end 

TestViewController.m

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.textView.delegate = self; 

    // Do any additional setup after loading the view, typically from a nib. 
} 

-(BOOL) textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
{ 
    CGRect frame = self.textView.frame; 
    frame.size.height = self.textView.contentSize.height; 

    self.textView.frame = frame; 
    self.imageView.frame = frame; 

    return YES; 
} 
+0

当我添加你的代码时,textview看起来像这样。请看我的问题。我将在问题中上传另一张图片。谢谢。 – Gopinath 2012-07-20 16:42:25

+0

我面临着我的应用程序中的第二个图像问题。你可以给一些指导方针来解决这个问题吗?谢谢。 – Gopinath 2012-07-20 16:45:29

+0

@Gopinath我上传了我的答案中的屏幕截图。那是你要的吗? – 2012-07-20 16:56:13

相关问题