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 滚动图像