如何在 ios 中为 UITextView 设置内容插入
Posted
技术标签:
【中文标题】如何在 ios 中为 UITextView 设置内容插入【英文标题】:How to set content inset for UITextView in ios 【发布时间】:2013-09-28 10:04:21 【问题描述】:我有一个 UITextView 并将内容插入设置为
[atextView setContentInset:UIEdgeInsetsMake(0, 10, 0, 0)];
此代码在 ios 6.1 及更低版本中有效,但在 iOS 7.0 中没有任何反应。
【问题讨论】:
有没有办法做到这一点在故事板?! 你试过更新答案了吗? 是的,在 Joe Blow 下方查看我的解决方案 @BencePattogato 感谢您的更新。 【参考方案1】:得到答案:
[atextView setTextContainerInset:UIEdgeInsetsMake(7, 7, 0, 0)];
解决了我的问题。
在 Swift 中...
@IBOutlet var tv:UITextView!
override func awakeFromNib()
super.awakeFromNib()
tv.textContainerInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
更新:另一种选择。
UIView *spacerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 10)];
[msgtext setLeftViewMode:UITextFieldViewModeAlways];
[msgtext setLeftView:spacerView];
【讨论】:
嘿@murugha23,我需要你帮助你解决IOS7中的textview setContentInset问题 替换setTextContainerInset
而不是 setContentInset
。如果你想提供以前版本的ios,那么检查一个条件寄存器,当前设备系统版本
如果你能提供一个你的类的示例代码就好了,包括键盘和textview的各种方法,让我有一个清晰的想法
其实你的问题是什么?是设置不当还是完全没有设置?
是的,我很快就会发布问题和发布链接【参考方案2】:
通过继承 UITextField 并添加 @IBInspectable 插入属性,这是一种替代方法,也许更方便一点。
import UIKit
class UITextfieldWithInset: UITextField
@IBInspectable
var textfieldInset: CGPoint = CGPointMake(0, 0)
override func textRectForBounds(bounds: CGRect) -> CGRect
return CGRectInset(bounds, textfieldInset.x, textfieldInset.y)
override func editingRectForBounds(bounds: CGRect) -> CGRect
return CGRectInset(bounds, textfieldInset.x, textfieldInset.y)
override func placeholderRectForBounds(bounds: CGRect) -> CGRect
return CGRectInset(bounds, textfieldInset.x, textfieldInset.y)
【讨论】:
这是UITextField
的一个很好的答案,但问题是关于UITextView
以上是关于如何在 ios 中为 UITextView 设置内容插入的主要内容,如果未能解决你的问题,请参考以下文章