Tôi có 2 sự nhầm lẫn về ScrollView. Một là câu hỏi chính của tôi, Một câu hỏi khác là sự nhầm lẫn thứ cấp.Chính xác là gì contentOffset & contentInset of ScrollView
1.What chính xác là contentOffse t & contentInset của scrollview. Tôi sẽ cung cấp thêm chi tiết bên dưới.
2.Tôi tạo ScrollView, nhưng có vẻ như scrollView không thể cuộn theo bất kỳ hướng nào. Có phải vấn đề về bù trừ không? ? Hoặc inset .Tôi sẽ cung cấp thêm chi tiết dưới đây
chi tiết cho câu hỏi 1:
Một thời gian tài sản contentOffset & contentInset tài sản dường như có rất nhiều sự khác biệt, nhưng khi tôi cố gắng thực hiện một số chức năng liên quan đến hai thuộc tính đó, tôi bắt đầu bối rối. Và tôi làm một minh họa đơn giản ở đây. bạn có thể giúp tôi tìm nó ra rằng đó là một phần được bù đắp và phần nào là hình chữ nhật: D
chi tiết cho câu hỏi 2:
tôi sử dụng hàm sau để thêm một 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")
}
Và không thể cuộn. Nó chỉ có thể chứa vài thứ (Nút hoặc TextFields ...) để lấp đầy kích thước của nó, thay vì đặt nhiều thứ hơn ở những nơi mà chúng ta không thể nhìn thấy.
Vì vậy, các vấn đề về việc thiết lập bắt đầu & là nội tuyến? Làm thế nào tôi có thể thiết lập để sửa lỗi này? Và nếu tôi làm như vậy, làm cách nào tôi có thể thêm mọi thứ (nút ..) vào các địa điểm không được hiển thị?
Tôi hy vọng bạn có thể cho tôi biết một số điều !! (Tôi có nghĩa là nó, thực sự! Tôi al chặn bản thân mình ở đây trong nhiều ngày!)
Xin chào Rob! Cảm ơn bạn ! Và tôi có thể làm theo đầu tiên 2. Nhưng để đơn giản hóa thứ ba, tôi muốn xác nhận rằng "nội dung có thể cuộn" liều đó đơn giản có nghĩa là kích thước của scrollView? – Microos
Không, bởi "nội dung có thể cuộn" Tôi đang đề cập đến tất cả các bản xem trước của chế độ xem cuộn. Và nếu tất cả các bản xem trước đó có ràng buộc của chúng được xác định đầy đủ, thì 'contentSize' của chế độ xem cuộn sẽ được tính và đặt cho bạn. Vì vậy, hãy tưởng tượng rằng chế độ xem cuộn của bạn có chiều cao 480 điểm, nhưng chiều cao (như các ràng buộc) của tất cả các bản xem trước và khoảng cách của chúng được thêm tối đa 700 điểm ('contentSize.height' là 700), sau đó bạn có thể cuộn 700 điểm nội dung lên và xuống trong chế độ xem cuộn 480 điểm. – Rob