如何在swift中的UIScrollView中设置全宽图像

时间:2016-01-04 18:18:47

标签: ios swift autolayout

我需要在故事板中添加的UIViewController中显示大量内容,因此我添加了UIScrollView,其中包括top,right,bottom,left:0(使其全屏显示)。

UIScrollView的顶部,我需要一个宽度为设备屏幕大小的方形图像,因此我添加了UIImageView约束:宽高比 - > 1:1,顶部:0,居中对齐在容器中,高度:100。 在它下面有一个UILabel,我想要显示大文本。我正在使用自动布局。

  1. 是否可以在Storyboard中执行此操作?
  2. 在swift中我试过
  3. 控制器文件中的已连接图像为:

    @IBOutlet weak var eventThumb: UIImageView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // set image path from url ,it works
        eventThumb.image = UIImage(data: NSData(contentsOfURL: NSURL(string: self.event!.image)!)!) 
    
        let screenSize: CGRect = UIScreen.mainScreen().bounds
        eventThumb.frame = CGRectMake( 0,  0,  screenSize.width,  screenSize.width)
    
    }
    

    我尝试了hereherehere给出的相关答案,但它们似乎不适用于我的情况。

    我是swift和ios的新手,我在结构上做错了吗?

    编辑: 已添加图片

    enter image description here

3 个答案:

答案 0 :(得分:6)

将其称为:

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    // your layout code goes here, AFTER the call to super
}

你忘记在代码前打电话给超级。

答案 1 :(得分:1)

您曾尝试使用以下屏幕尺寸制作相框

eventThumb.frame = CGRectMake( 0,  0,  screenSize.width,  screenSize.width)

请用

进行交叉检查
eventThumb.frame = CGRectMake( 0,  0,  screenSize.width,  screenSize.height)

答案 2 :(得分:0)

只需尝试以下步骤:

  • 首先删除您在Image
  • 中可以看到的所有红线

enter image description here

  • 现在保持原样,你在哪里设置Imageview的框架

注意:

  • 我已经在swift& amp;为我工作。我希望它对你有用。

<强>编辑:

  • 正如您所说,您正在使用自动布局,因此无需禁用它。做一件事
  • 在此方法中放置您正在设置图像视图框架的线: - (无效)viewDidLayoutSubviews