【发布时间】:2013-07-03 05:58:40
【问题描述】:
我创建了一个视图控制器,顶部有一个导航栏,底部有一个标签栏,只有一个 UIScrollView 占据了中间的所有剩余空间。我已经为视图控制器头文件上的滚动视图创建了一个弱的、非原子的IBOutlet。我不明白的是,当我从所有者视图控制器打印出它的帧值时,宽度和高度值如何为零。
这是视图控制器的头文件:
#import <UIKit/UIKit.h>
@interface AdGalleryViewController : UIViewController<UIScrollViewDelegate>
@property (nonatomic, weak) IBOutlet UIScrollView *scrollView;
@property (nonatomic, strong) NSArray *imageURLs;
@end
实现文件:
- (void)viewDidLoad
{
[super viewDidLoad];
CGRect svFrame = self.scrollView.frame;
NSLog(@"scroll view frame: %@", NSStringFromCGRect(svFrame));
}
输出:
2013-07-05 15:36:21.447 Sulit[2733:907] scroll view frame: {{0, 0}, {0, 0}}
发生了什么事?
【问题讨论】:
-
请检查你的滚动视图与它的委托和 IBOutlet 连接
-
你在使用自动布局吗?
-
我是。我还刚刚将滚动视图作为其代表连接到文件所有者(只是在上述评论之后发现我没有这样做),但仍然为零。
-
委托与滚动视图的框架没有任何关系,请检查您为滚动视图设置的约束并检查
viewWillAppear或viewDidAppear中的框架值 -
删除自动布局后仍然为零。 :(
标签: iphone ios objective-c ipad uiscrollview