使用UILabel创建自定义UITextView以及其中的文本

我想创建一个自定义UITextView ,能够在其中输入文本,以及以编程方式在那里添加一些像文本一样的UILabels (当光标靠近它时我需要用’退格’按钮删除它们)。

UITextView应该是可扩展的,并且标签可以具有不同的宽度。

有关如何创建此类事物,任何教程等的任何想法?

您可以使用此代码创建文本字段。

 UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(10, 200, 300, 40)]; textField.borderStyle = UITextBorderStyleRoundedRect; textField.font = [UIFont systemFontOfSize:15]; textField.placeholder = @"enter text"; textField.autocorrectionType = UITextAutocorrectionTypeNo; textField.keyboardType = UIKeyboardTypeDefault; textField.returnKeyType = UIReturnKeyDone; textField.clearButtonMode = UITextFieldViewModeWhileEditing; textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; textField.delegate = self; [self.view addSubview:textField]; [textField release]; 

要创建标签,您可以使用以下代码:

 CGRect labelFrame = CGRectMake( 10, 40, 100, 30 ); UILabel* label = [[UILabel alloc] initWithFrame: labelFrame]; [label setText: @"My Label"]; [label setTextColor: [UIColor orangeColor]]; label.backgroundColor =[UIColor clearColor]; [view addSubview: label]; 

并且当退格磁带使用此方法时删除标签:

 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ if ([string isEqualToString:@""]) { NSLog(@"backspace button pressed"); [label removeFromSuperview]; } return YES; } 

如果按下退格按钮,则replacementString(string)将具有null值。 因此我们可以使用此function识别退格按钮。