10

我正在一个应用程序中工作,我需要在 iphone 中提供诸如 Notes App 之类的功能。如第一个屏幕截图所示,最初,notes 在内容开始之前留下一个选项卡,我也想做同样的事情,当我将Left Content inset (of UITextView) 设置为 25 时,它显示在屏幕截图 2 中,在这里你可能会看到图像也移动了。我已将图像设置为背景。我不知道如何解决这个问题。

我还尝试通过将图像添加为 UITextview 的子视图,但它不会重复线条,同时滚动(线条图像)就像笔记应用程序一样。

笔记应用 我得到的输出

我正在通过以下代码设置 Textview 的背景。

[textView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"line_image.png"]]];

请告诉我我是否出错或需要任何额外的努力来获得所需的输出。

谢谢

4

2 回答 2

3

UITextView 是 UIScrollView 的子类,因此所有相关的委托方法都可供您使用(例如scrollViewDidScroll:) - 您可以在该方法中调整您的自定义背景。

Dr.Touch 博客上有一篇非常不错的关于重新创建 Notes 应用程序界面的帖子——您可以从中大致了解它是如何完成的。基本上所做的是添加自定义视图,在文本视图后面绘制背景并在文本视图的委托方法中调整它,并在其“contentSize”属性上使用 KVO。

于 2012-06-07T12:15:59.483 回答
2

@Dinesh 提供了很好的解决方案,但听起来并不通用,因为我想使用线条图像而不是绘制它们。图像有一些绘画无法达到的特殊效果。所以为了解决这个问题,我在 textview 下方创建了一个表格视图,保持 textview 的背景透明。现在只需将线条的图像添加到我的表格视图的自定义单元格中,并将 UItableview 的内容偏移设置为与滚动视图相同(文本视图的子视图,参考@Vladimir 的答案)。

并使用以下代码通过滚动 textview 滚动我的 tableview 并获得所需的输出。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{           
    tableView.contentOffset =scrollView.contentOffset; 
}

保持我的 tableview 的行数非常大。

PS:我没有设置textview的内容插图,而是设置了它的框架的X位置并相对减小了宽度。

于 2012-06-07T13:48:26.913 回答