- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有 2 个关于 ScrollView 的问题。一个是我的主要问题,另一个是次要的混淆。
1.ScrollView
的contentOffset
和contentInset
到底是什么?我将在下面提供更多详细信息。
2.我创建了一个ScrollView
,但是ScrollView
好像不能向任何方向滚动,是偏移量的问题吗?还是插页?我将在下面提供更多详细信息。
问题 1 的详细信息:
有时 contentOffset
属性和 contentInset
属性似乎有很多不同,但是当我尝试实现与这两个属性相关的一些功能时,我感到困惑。我在这里做一个简单的说明。你能帮我弄清楚哪些部分是偏移的,哪些部分是插入的吗?
问题 2 的详细信息:
我使用下面的函数来添加一个ScrollView
func addScrollView(){
// assign a new ScrollView to "scroll" class member
scroll = UIScrollView(frame: CGRectZero)
scroll!.translatesAutoresizingMaskIntoConstraints = false
// change it to gray color to help recognising
scroll!.backgroundColor = UIColor.grayColor()
self.view.addSubview(scroll!)
//add some constraints,[you can neglect following part]
let x = NSLayoutConstraint(item: scroll!, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.CenterX, multiplier: 1, constant: 0)
self.view.addConstraint(x)
let y = NSLayoutConstraint(item: scroll!, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.CenterY, multiplier: 1/2, constant: 25)
self.view.addConstraint(y)
let left = NSLayoutConstraint(item: scroll!, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.LeadingMargin, multiplier: 1, constant: 10)
self.view.addConstraint(left)
let upperSpacing = NSLayoutConstraint(item: scroll!, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.Top, multiplier: 1, constant: 50)
self.view.addConstraint(upperSpacing)
let w = NSLayoutConstraint(item: scroll!, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.GreaterThanOrEqual, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 0, constant: 10)
self.view.addConstraint(w)
let h = NSLayoutConstraint(item: scroll!, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: scroll!, attribute: NSLayoutAttribute.Width, multiplier: 1, constant: 0)
self.view.addConstraint(h)
print("add scroll view Successed")
}
而且它不能滚动。它只能包含很少的东西(按钮或文本字段...)来填充它的大小,而不是在我们看不到的地方放更多的东西。
那么设置 outset 和 inset 的问题是什么?我该如何设置来解决这个问题?如果我这样做,我如何以编程方式将东西(按钮..)添加到未显示的地方?
我希望你能告诉我一些事情!
最佳答案
一些观察:
contentOffset
是用户当前在 ScrollView 中滚动的位置。这显然会随着用户滚动而改变。您通常不会以编程方式更改此设置(除非您想以编程方式滚动某处,例如,有一个滚动到顶部的按钮)。
contentInset
是内容在 ScrollView 中视觉插入的程度(即 ScrollView 中的“边距”)。您通常在 IB 或 viewDidLoad
中设置一次,因为 ScrollView 已实例化。
contentSize
是可滚动内容的大小。请注意,使用自动布局,您不必手动指定它,而是根据您在 ScrollView 及其 subview 之间指定的约束(以及 subview 和 subview 之间的约束)来计算。
要使滚动正常工作,它是 (a) ScrollView 的 bounds
减去任何 contentInset
的组合;和 (b) contentSize
,根据 subview 的约束为您计算。
关于ios - ScrollView的contentOffset&contentInset到底是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33286574/
这对你们来说可能很简单,但由于我是java新手,所以我想知道实际上什么是 接下来的部分会发生什么? if (args.length > 0) { file = args[0]; } publi
在我的 View Controller 中,我将 UITapGestureRecognizer 添加到 self.view。我在 self.view 之上添加了一个小 View 。当我点击小 View
我今天尝试从 Obj-C 开始并转到 Swift,我正在阅读文档。我试图在 Swift 中创建一个简单的 IBOutlet,但它不断给我这些错误。 View Controller 没有初始化器 req
我正在尝试使用 VIM 完成(字典和当前缓冲区),但我遇到了问题?和 !在方法名称的末尾。我能以某种方式向 vim 解释方法名称(基本上是单词)最后只能有它,而且只有一个,即 method_name
我是一名优秀的程序员,十分优秀!