我正在自学 IOS 开发,但我在尝试做的一项练习中遇到了问题。基本上我有一个我想要显示的图片列表,所以我创建了一个包含这些图片列表的表格视图,目标是单击一个单元格并显示图片自动缩放到屏幕大小。我已经关闭了 ARC,所以我可以自己学习管理内存。
当我在表格视图中选择一个单元格时,它会调用具有滚动视图和图像视图的 UIViewController。
这就是我连接插座的方式:
在方法 viewWillAppear 下的 PhotoViewController 的实现中,我编写了以下代码:
- (void) viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.scrollView setZoomScale:1 animated:NO];
CGSize boundsSize = self.scrollView.bounds.size;
NSLog(@"@@@AMRO scrollboundsSize is width %f and height %f", boundsSize.width,
boundsSize.height);
我需要 boundsSize 来帮助我弄清楚如何缩放我的图片。问题是它总是读为零。我知道根据情节提要,boundsSize 是 320x455。显然我不想硬编码它。
在那个 PhotoViewController 的 .h 中,我定义了:
@property (strong, nonatomic) IBOutlet UIImageView *imageView;
@property (strong, nonatomic) IBOutlet UIScrollView *scrollView;
现在,如果在 ViewWillAppear 中,我会这样做:
CGRect fullScreenRect=[[UIScreen mainScreen] applicationFrame];
self.scrollView=[[UIScrollView alloc] initWithFrame:fullScreenRect];
然后我得到了要定义的边界,但是大小是关闭的,它的宽度是 320.000000,高度是 548.000000。我知道548的高度可能是因为它包括底部的标题栏和标签栏。有没有办法让我根据故事板中看到的 320 x 455 的视图正确设置边界。我查看了其他人做同样事情的代码片段,他们甚至没有分配滚动视图,是因为 ARC 是 ON 并且这是自动管理的吗?
如果我使用这种方法,那么我确实得到了正确的大小,但这是正确的方法吗,我已经看到了滚动视图从未初始化但它们的边界设置正确的示例
CGRect viewBounds = self.view.bounds;
self.scrollView=[[UIScrollView alloc] initWithFrame:viewBounds];