Ios 如何在swift中设置UIScrollView内的全幅图像

Ios 如何在swift中设置UIScrollView内的全幅图像,ios,swift,autolayout,Ios,Swift,Autolayout,我需要在脚本中添加的UIViewController中显示大型内容,因此我添加了UIScrollView,并带有上、右、下、左约束:0(使其全屏显示) 在UIScrollView的顶部,我需要一个正方形图像,其宽度为设备屏幕大小,因此我添加了UIImageView约束条件:纵横比->1:1,顶部:0,容器中的中心对齐,高度:100。 下面是一个ui标签,我想在这里显示大文本。我使用自动布局 在故事板中有这样做的选项吗 在斯威夫特,我试着在下面 控制器文件中的已连接映像为: @IBOutlet w

我需要在脚本中添加的
UIViewController
中显示大型内容,因此我添加了
UIScrollView
,并带有上、右、下、左约束:0(使其全屏显示)

UIScrollView
的顶部,我需要一个正方形图像,其宽度为设备屏幕大小,因此我添加了
UIImageView
约束条件:纵横比->1:1,顶部:0,容器中的中心对齐,高度:100。 下面是一个
ui标签
,我想在这里显示大文本。我使用自动布局

  • 在故事板中有这样做的选项吗
  • 在斯威夫特,我试着在下面
  • 控制器文件中的已连接映像为:

    @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)
    
    }
    
    我尝试了给出的相关答案,但它们似乎对我的情况不起作用

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

    编辑: 图像添加

    只需尝试以下步骤:

    • 首先,删除图片中显示的所有红线

    • 现在保持这条线不变,在这里您要设置Imageview的框架
    注意:

    • 我已经在swift中尝试了这个解决方案,并为我工作。我希望它对你有用
    编辑:

    • 正如您所提到的,您正在使用自动布局,因此无需禁用它。只要做一件事
    • 使用以下方法设置图像视图框架的线条: -(无效)ViewDidLayoutSubView
    呼叫:

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

    您忘记在代码之前调用super。

    您已尝试使用以下屏幕大小制作框架

    eventThumb.frame = CGRectMake( 0,  0,  screenSize.width,  screenSize.width)
    
    请与我核对一下

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

    eventThumb.frame=CGRectMake(0,0,screenSize.width,screenSize.width)。这段代码没有使图像的全宽与屏幕大小相同,我在故事板中显示了相同大小的图像。谢谢,但我在我的应用程序中使用了自动布局。您的解决方案似乎是使用固定宽度布局。我关心的是,因为我在整个应用程序中使用了自动布局,我没有得到你建议的选项。如果我从情节提要中删除自动布局选项,将影响整个应用程序,我不想仅用于此选项。在选择自动布局选项的情况下,我仍然可以这样做吗?因为我在整个应用程序中使用自动布局,所以我没有得到您建议的选项。我在问题编辑中添加了图像。我添加了override func viewDidLayoutSubviews(){let screenSize:CGRect=UIScreen.mainScreen().bounds eventThumn.frame=CGRectMake(0,0,screenSize.height,screenSize.width)}它在屏幕加载时设置图像大小。但当我滚动页面时(在滚动视图中),它会重置为旧的SizeGraat答案!小字体:在“{”前面用“()”完成函数签名,func应该是“override”+1