我在一个应用程序中工作,我需要在iphone中提供像Notes App这样的功能。如第一个屏幕截图所示,最初,笔记在内容开始之前留下一个标签,我也想做同样的事情,当我将左内容插入(UITextView)设置为25时,它显示如截屏2,在这里你可能会看到图像也被移动了。我已将图像设置为背景。我不知道如何解决这个问题。
我还尝试将图像添加为UITextview的子视图,但它不会重复这些线条,同时滚动(线条图像),例如笔记应用。
我正在通过以下代码设置Textview的背景。
[textView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"line_image.png"]]];
如果我出错或需要额外的努力来获得所需的输出,请告诉我。
由于
答案 0 :(得分:3)
UITextView是UIScrollView子类,因此您可以使用所有相关的委托方法(例如scrollViewDidScroll:
) - 您可以在该方法中调整自定义背景。
Dr.Touch blog关于重新创建Notes应用程序界面的帖子非常好 - 你可以大致了解它是如何完成的。基本上所做的是添加自定义视图,在文本视图后面绘制背景并在文本视图的委托方法中调整它,并在其“contentSize”属性上使用KVO。
答案 1 :(得分:2)
@Dinesh提供了很好的解决方案,但是听起来不是通用的,因为我想使用线条的图像而不是绘制它们。图像具有一些通过绘图无法实现的特殊效果。因此,为了解决这个问题,我在textview下创建了一个表视图,保持textview的背景透明。现在只需将行的图像添加到我的tableview的自定义单元格中,并设置UItableview的内容偏移量,与scrollview相同(文本视图的子视图,参考@Vladimir的答案)。
使用以下代码滚动我的tableview,滚动textview并获得所需的输出。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
tableView.contentOffset =scrollView.contentOffset;
}
保持我的tableview的行数非常大。
PS:我不是设置textview的内容插入,而是设置其框架的 X位置并相应地减小宽度。