In the iOS Mail app when you hit reply, you are presented with a text view like this. The vertical blue line keeps growing or shrinking (as the case may be) when you try to edit the previous reply while doing an inline reply or something. The top portion (your main reply) looks normal. Any idea on a really top level on how to pull this kind of text view off?
textViewHolder = [[UIView alloc]initWithFrame:CGRectMake(20, 100, 280, 20)];
simpleLine = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 2, 20)];
simpleLine.backgroundColor = [UIColor blueColor];
[textViewHolder addSubview:simpleLine];
myTextView = [[UITextView alloc]initWithFrame:CGRectMake(20, 0, 240, 24)];
myTextView.delegate = self;
[textViewHolder addSubview:myTextView];
[self.view addSubview:textViewHolder];
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;
{
int numLines = myTextView.contentSize.height / myTextView.font.lineHeight;
if([text isEqualToString:@"\n"])
numLines++;
if(numLines>1)
{
CGRect frame = textViewHolder.frame;
frame.size.height = 20*(numLines-1);
textViewHolder.frame =frame;
CGRect frame2 = simpleLine.frame;
frame2.size.height = 20*(numLines-1);
simpleLine.frame =frame2;
CGRect frame3 = myTextView.frame;
frame3.size.height = 24*(numLines-1);
myTextView.frame =frame3;
}
return YES;
}
The (numLines-1)
is because I always got one line more that I needed. I'm sure it's solvable with a bit debugging.
The [text isEqualToString:@"\n"]
part is because you also want to increment the line number if the user presses done and going down a line.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With