0

我是 iOS 开发的初学者,遇到了以下问题。

在 .xib 文件中,我有按钮和图像视图,如下图所示。

在此处输入图像描述

现在我做了以下操作以在图像视图中显示图像并在 .m 文件中设置内容模式。

UIImage *save = UIGraphicsGetImageFromCurrentImageContext();
self.ivCard.image = save;
self.ivCard.contentMode = UIViewContentModeScaleAspectFit;
self.ivCard.clipsToBounds = YES;

现在结果如下图所示。

在此处输入图像描述

原始图像的分辨率为 2000x1000,这里是

在此处输入图像描述

图像是从右侧自动裁剪的,它应该适合图像视图。

4

2 回答 2

2

很确定您没有向 ImageView 添加约束,ImageView 大小与设备大小不同。

将 ImageView 中的约束添加到 Interface Builder 中的边框,它将起作用。

检查:https ://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/WorkingwithConstraints/WorkingwithConstraints.html

于 2015-01-19T12:34:36.103 回答
0

有两种方法可以实现它。

  1. 您可以从您的 .xib 文件或以语法方式为您的图像视图添加约束,如下所示:

    // 左右对齐ivCard

     [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[ivCard]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(ivCard)]];
    

    // 从顶部和底部对齐 ivCard

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-20-[ivCard]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(ivCard)]];
    
  2. 您可以使用以下代码直接设置图像视图的框架:

    CGFloat btnHeight = 20; // Your back button height from xib
    
    self.ivCard.frame = CGRectMake(0, btnHeight, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - btnHeight);
    
于 2015-01-19T12:50:16.107 回答