【问题标题】:How to set UITextView's content inset like Notes App如何像 Notes App 一样设置 UITextView 内容插图
【发布时间】:2012-06-11 11:38:26
【问题描述】:

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

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

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

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

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

谢谢

【问题讨论】:

  • 为什么不保持 textview 背景清晰并在 textview 后面应用 UIImageVIew 并调整 textview 的大小,使其左侧开始于 UIImageView 的行之后;)
  • 我无法使用 textview 滚动 imageview。也没有委托方法可以通知我拖动 textview @owl

标签: iphone ios uitextview


【解决方案1】:

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

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

【讨论】:

  • 谢谢。你是对的,我用同样的方法解决了我的问题。请参阅我在下面发布的答案。
【解决方案2】:

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

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

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

将我的 tableview 的行数保持在一个非常大的数量。

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

【讨论】:

    猜你喜欢
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多