ImageView 不在 UIScrollView 中显示(目标 C)

Posted

技术标签:

【中文标题】ImageView 不在 UIScrollView 中显示(目标 C)【英文标题】:ImageView doesn't show in UIScrollView (objective C) 【发布时间】:2016-05-30 10:46:30 【问题描述】:

我目前正在尝试将图像放入 UIScrollView。 我检查了很多答案,但 *** 中的所有主题都不适用于我的代码。我想我只是忘记了其中的一个细节,但无法弄清楚。

所以,我在 ViewController.m 中有这段代码:

- (void)initTransportData

    _transportsData = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 654, 414, 82)];
    CGRect viewSize = _transportsData.bounds;
    UIImageView *imgView = [[UIImageView alloc] initWithFrame:viewSize];
    [imgView setImage:[UIImage imageNamed:@"image.png"]];
    [_transportsData addSubview:imgView];


我的 _transportData 在我的 ViewController.h 中是这样定义的:

@property (strong, nonatomic) IBOutlet UIScrollView *transportsData;

当我测试它时,scrollView 显示为黑色(我在 main.storyboard 中设置了它)。

我的scrollView上面也有一个MapView(不知道能不能帮助理解)。

PS:我在 viewDidLoad 函数中 [super viewDidLoad] 下面调用了我的 intTransportData 函数。

有谁知道怎么回事? 谢谢

【问题讨论】:

如果你给IBOutlet,那么你不需要分配滚动视图,只需在你的故事板/xib中建立连接 天哪,非常感谢,这就是问题所在! 您不应该分配初始化声明为出口的滚动视图。我想图像视图的帧大小也是错误的 @AdèleDunand WC,你也可以点赞评论 :) 【参考方案1】:

你已经设置了像(0, 654, 414, 82)这样的框架,这意味着你的y位置是滚动视图的654。然后它低于屏幕高度。

所以,正确设置框架。

您需要将该滚动视图添加到主视图 (self.view)。

如果你已经给了outlet,那么就不需要再设置frame了。

您应该使用自动布局来轻松管理这些事情。

您的场景应该是 UIScrollview - UIView - UIImageView 并且您需要为每个视图设置适当的约束。如果您不知道自动布局,请在 google 上搜索教程并首先学习它。

希望这会有所帮助:)

【讨论】:

谢谢,但这实际上不是问题:我只是不需要分配我的滚动视图,因为它是一个 IBOutlet 另外,你是对的......我的滚动视图低于屏幕高度。但是因为我不需要这条线,好吧,不再是问题了:p 不客气.. :) 是的,我在回答中也提到了这一点。 (对不起,英语不好,我没注意到^^)

以上是关于ImageView 不在 UIScrollView 中显示(目标 C)的主要内容,如果未能解决你的问题,请参考以下文章

带有 ImageView 的 UIScrollView 不垂直滚动

在父视图中添加 ImageView 后 UIScrollView 停止滚动?

UIScrollView 缩放:将平移限制为 imageView.image 边界

在 iPhone 中使用 UIScrollView 和 ImageView 滚动图像

带有子视图的 UIScrollView,包括 ImageView、Label 和 Table View

ImageView panGesture 取消 UISCrollVIew 滚动功能