我想在带有发送和相机按钮的工具栏的UITextView中插入UIImageView,就像iPhone默认短信应用程序一样。请按照相同方式进行操作。
UIScrollView
,在其中管理UITextView
和UIImageView
。 UITextView
不支持将图像嵌入文本中。实际上,它几乎不支持除多行文本之外的任何内容。UITextView
,而是使用了自定义视图。那种东西很难复制。UITextView
上覆盖了UIImageView
作为子视图,并设置了UITextView
的contentInset,以使它们不重叠。UIView
来包含UITextView
和UIImageView
作为子视图,并根据需要简单地排列这些子视图。我同意Aaron的说法。根据我所看到的,我认为原生短信应用程序实际上是一个高度修改过的UITableViewCell。这些TableCells是复合视图,包含了Aaron建议的UITextView和UIImageView。
可能需要一些更多的工作,但我认为定义自己的UITableCell并使用上述元素进行定制化会非常有用,并符合整体iOS范例。当你与本地范例配合而不是对抗或绕开它们时,事情会变得更好。
祝好
我有一个建议,根据您的要求制作带有图像和文本的HTML文件,并将该HTML文件加载到Webview中。
在这里,您还可以使某些特定文本加粗等。
我认为它比textfield好看。
要使Webview看起来像简单的滚动视图,请将此方法放入您的代码中
不要忘记写这个
webView.opaque = NO;
,
[self hideGradientBackground:webView];
和
- (void) hideGradientBackground:(UIView*)theView
{
for (UIView * subview in theView.subviews)
{
subview.backgroundColor = [UIColor clearColor];
if ([subview isKindOfClass:[UIImageView class]])
subview.hidden = YES;
[self hideGradientBackground:subview];
}
}
希望这能对你有所帮助。
您可以使用UITextViewDelegate和ContentInset来实现它。
- (void)viewDidLoad
{
self.textView.delegate = self;
[self.textView addSubview:self.addedView];
[self.textView setContentInset:UIEdgeInsetsMake(0, 0, CGRectGetHeight(self.addedView.frame), 0)];
}
- (void)textViewDidChange:(UITextView *)textView
{
NSLog(@"%@",NSStringFromCGSize(textView.contentSize));
__weak typeof(self) wself = self;
[UIView animateWithDuration:0.5f animations:^{
[wself.addedView setFrame:CGRectMake(0, textView.contentSize.height + 10, CGRectGetWidth(wself.addedView.frame), CGRectGetHeight(wself.addedView.frame))];
}];
}