iOS 7 - UIScrollView subView 不显示
Posted
技术标签:
【中文标题】iOS 7 - UIScrollView subView 不显示【英文标题】:iOS 7 - UIScrollView subView not showing 【发布时间】:2014-02-10 07:51:24 【问题描述】:尝试将子视图添加到 UIScrollView,这是在 XIB 文件中定义的。下面的代码是我尝试在视图控制器中添加子视图的方式。但是没有添加子视图。
有什么建议吗?
- (void)viewDidLoad
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
CGRect frame = _tasksScrollView.frame;
frame.size.width /= 3.0;
NSArray *colors = [NSArray arrayWithObjects:[UIColor blueColor],
[UIColor redColor],
[UIColor yellowColor],
[UIColor greenColor],
[UIColor purpleColor],
nil];
for (int i = 0; i < [colors count]; i++, frame.origin.x += frame.size.width)
UIView *subView = [[UIView alloc] initWithFrame:frame];
subView.backgroundColor = [colors objectAtIndex:i];
[_tasksScrollView addSubview:subView];
_tasksScrollView.contentSize = CGSizeMake(frame.size.width * [colors count], frame.size.height);
【问题讨论】:
你确定 frame.origin.y 是 0 可能是您的子视图相对于滚动视图中的视图空间偏移,因为您从scrollview.frame
本身继承了 x
和 y
坐标,这实际上是相对位置到全屏。尝试设置子视图的x
和y
位置,使其从0
开始。
感谢您的帮助!我的 UIScrollView 没有从原点 (0, 0) 开始,我将我的子视图框架的原点设置为与 UIScrollView 的原点相同,但这不起作用。将子视图的原点设置为 (0, 0) 有效。
@bohanl 很高兴你把它修好了。
【参考方案1】:
可能是您的子视图相对于滚动视图中的视图空间偏移,因为您从scrollview.frame
本身继承了x
和y
坐标,这实际上是相对于全屏的位置。尝试设置子视图的x
和y
位置,使其从0
开始。
【讨论】:
【参考方案2】:发生这种情况的原因有几个,大多数情况下,您只是无法链接/连接 XIB 中的 IBOutlet 属性 (_tasksScrollView)。
【讨论】:
以上是关于iOS 7 - UIScrollView subView 不显示的主要内容,如果未能解决你的问题,请参考以下文章
为啥我不能在 iOS 7.0 中的 UIScrollView 中滚动?
UIScrollView 框架在 iOS 8 和 iOS 7 上的大小不同
iOS 7——navigationController 正在设置我的 UIScrollView 的 contentInset 和 ContentOffset