H B*_*amy 60 objective-c uiscrollview uikit ios
我在contentInsets中遇到了一些奇怪的东西
我的故事板中有一个UITextView,其中contentInset为50,因为我正在尝试在我的uitextview中添加一些填充
但是,uitextview底部会出现一个滚动条,如下面的测试所示:
我的印象是contentInset压缩uitextview而不会导致这个水平滚动条,所以如何删除对水平滚动条的需要并使所有内容 - 插入和uitextview中的所有文本 - 可见而不需要滚动条.
注意:我不是要求防止水平滚动或不显示滚动条(因此切割文本)
非常感谢!
对于atomk(UITextView称为ss)
NSLog(@"Content Size Before %f",self.ss.contentSize.width); Logs: 280
CGSize size=self.ss.contentSize; size.width=size.width-50;
[self.ss setContentSize:size];
NSLog(@"Content Size After %f",self.ss.contentSize.width); Logs: 230
Run Code Online (Sandbox Code Playgroud)
有没有比加入前添加的代码视图之间明显的区别,因此,一些地方出了错!(谢谢)
Flo*_*ian 174
在iOS 7中,UITextView
它基于TextKit并具有新属性textContainerInset
.它的行为与您期望的一样:
UITextView *textView = ...;
// Left inset of 50 points
textView.textContainerInset = UIEdgeInsetsMake(0.0, 50.0, 0.0, 0.0);
Run Code Online (Sandbox Code Playgroud)
Ste*_*arp 95
更新:从iOS 7开始,此解决方案已过期.
请参阅下面的答案.在iOS 7.0中,引入了textContainerInset
属性UITextView
:
textView.textContainerInset = UIEdgeInsetsMake(0, 50, 0, 0);
Run Code Online (Sandbox Code Playgroud)
iOS 7之前的解决方案:
我的印象是contentInset压缩uitextview而不会导致这个水平滚动条...
我担心这不是一个如何contentInset
使用UITextView
.请参阅Apple的文档,了解contentInset
其所在的位置:
内容视图从封闭滚动视图中插入的距离...使用此属性可添加到内容周围的滚动区域.
将contentInset
被添加内容周围.
您可以更改contentSize
在viewDidLayoutSubviews
使用已包含上面的代码:
- (void)viewDidLayoutSubviews
{
self.textView.contentInset = UIEdgeInsetsMake(0, 50, 0, 0);
NSLog(@"Content Size Before %f",self.textView.contentSize.width); //Logs: 280
CGSize size=self.textView.contentSize;
size.width=size.width-50;
[self.textView setContentSize:size];
NSLog(@"Content Size After %f",self.textView.contentSize.width); //Logs: 230
}
Run Code Online (Sandbox Code Playgroud)
但是,这会导致文本在右侧被切断:
我能够在a中实现水平填充外观的最佳方法UITextView
是将其放置在容器内UIView
.在您的情况下,只需创建UIView
与当前文本视图相同的大小,并在容器视图中添加50px更窄的文本视图.
如果您有文本视图的背景,此解决方法可能会导致问题,但从上面的屏幕截图看,这对您来说不是一个问题.
UITextView
(UIView
容器内的红框):
如果您UITextView
有背景,请参阅:
希望有所帮助,如果有人能找到更好的解决方案,我很乐意听到它!
归档时间: |
|
查看次数: |
52983 次 |
最近记录: |