self.scrollView = [[UIScrollView alloc] init];
self.scrollView.showsVerticalScrollIndicator = NO;
self.scrollView.showsVerticalScrollIndicator = NO;
self.scrollView.scrollsToTop = NO;
[self addSubview:self.scrollView];
问题:
上述代码可以发现 showsVerticalScrollIndicator写了两遍,这有可能属于误操作,本意是写self.scrollView.showsHorizontalScrollIndicator.
解析:
当这种情况出现时,我们要在self.scrollView.layer添加视图前,(如果每次都需要进行添加子控件)正常的操作是先清除之前视图上的控件,从新添加,防止控件不停的被添加,导致程序内存增加,出现问题。
-
在未执行
[self addSubview:self.scrollView];
前打印self.scrollView.layer.sublayers控制台都会输出nil,我们还没向self.scrollView.layer添加任何东西,属正常现象。 -
执行之后
[self addSubview:self.scrollView];会发现self.scrollView.layer.sublayers突然有值了,(有可能看不到有值的现象,有可能还是nil)
这时程序是可以正常运行的,不会有任何问题。
- 当向
self.scrollView.layer添加视图前的代码是这样写的。
self.scrollView.layer.sublayers = nill;
[self.scrollView.layer addSublayer:textLayer];
执行到self.scrollView.layer.sublayers = nill; 断点打印控制台会出输出
Snip20181102_1.png
这时程序正常运行,但是当你点击后视图后会出现崩溃。直接崩到main函数。
Snip20181102_2.png
问题的关键是self.scrollView.showsVerticalScrollIndicator = NO;写了两遍导致的问题,修改成 self.scrollView.showsHorizontalScrollIndicator = NO,问题就解决了。










网友评论