嵌入在 UIScrollView (SWIFT) 中的 UIImageView 的约束问题

Posted

技术标签:

【中文标题】嵌入在 UIScrollView (SWIFT) 中的 UIImageView 的约束问题【英文标题】:Trouble with constraints on UIImageView embedded inside UIScrollView (SWIFT) 【发布时间】:2016-03-22 19:10:22 【问题描述】:

我在以编程方式在 Swift 中添加约束时遇到问题,我已在 ScrollView 中创建并添加为 UIImageView。我希望滚动视图中的每个图像都与 128px 的宽度和高度一样大。

Here is what the simulator looks like。我正在尝试使用

创建一个滚动轮播
import UIKit

 class ViewController: UIViewController 

@IBOutlet weak var label: UILabel!
@IBOutlet weak var scrollView: UIScrollView!
override func viewDidLoad() 
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.




   self.scrollView.frame =  CGRectMake( 0, 0, self.view.frame.width, 128)

    let scrollViewHeight = self.scrollView.frame.height

    let scrollViewWidth = self.scrollView.frame.width

    var imgOne = UIImageView(frame: CGRectMake(0, 0, scrollViewWidth, scrollViewHeight))

    var imgTwo = UIImageView(frame: CGRectMake(scrollViewWidth, 0, scrollViewWidth, scrollViewHeight))

    imgOne.image = UIImage(named: "Slide 1")
    imgTwo.image = UIImage(named: "Slide 4")




    self.scrollView.addSubview(imgOne)
    self.scrollView.addSubview(imgTwo)

    self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.width * 2, self.scrollView.frame.size.height)



    // let horizonalContraints = NSLayoutConstraint(item: scrollView, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.Width, multiplier: 1.0, constant: 0)




   // NSLayoutConstraint.activateConstraints([horizonalContraints])

【问题讨论】:

【参考方案1】:

在运行应用程序时尝试捕获视图层次结构,以查看问题出在滚动视图还是图像视图。 (只需在 Xcode 捕获视图中搜索...) 当我使用约束将视图嵌入到另一个视图中时,我也遇到了这种错误。

如果您还没有尝试过每个元素的 NSLog 帧,也可以尝试一下。

希望它能帮助你解决问题。

【讨论】:

以上是关于嵌入在 UIScrollView (SWIFT) 中的 UIImageView 的约束问题的主要内容,如果未能解决你的问题,请参考以下文章

如何使在Swift中使用UIScrollView进行滚动和缩放

在 ScrollView 中嵌入 PageViewController - 以编程方式 Swift 5

UIScrollView 嵌入其他 UIScrollView

嵌入在 UIScrollview 中的 UIWebview 中的 Javascript 触摸事件

调整 UITableView 高度(嵌入在 UIScrollView 中)

多个分页滚动视图 - Swift