ios - 滚动视图中未显示的图像(仅代码,无情节提要)
问题描述
我想创造什么我四处寻找,没有任何答案。首先,我没有使用故事板(找到非常简单的解决方案来解决我的问题)
我使用 UIscrollview 和 Pagecontrol 来创建这样的东西,只是为了尽可能清晰。
当我加载我的应用程序时,uiscrollview 和页面面板(设置为黑色)正在显示,因此正常约束没有问题。
但是我无法加载我的图像,也看不到显示我所在的“页面”的小圆形按钮。
这是与此相关的最重要的代码:
class ViewController: UIViewController, UIScrollViewDelegate {
var images: [String] = ["0.jpg", "1.jpg"]
var frame = CGRect(x: 0, y: 0, width: 0, height: 0)
lazy var scrollView: UIScrollView = {
let scroll = UIScrollView()
scroll.backgroundColor = UIColor.black
scroll.translatesAutoresizingMaskIntoConstraints = false
scroll.layer.cornerRadius = 30
return scroll
}()
lazy var pageControl: UIPageControl = {
let page = UIPageControl()
page.backgroundColor = UIColor.black
page.translatesAutoresizingMaskIntoConstraints = false
return page
}()
方法:
func testScroll() {
for index in 0..<images.count {
frame.origin.x = scrollView.frame.size.width * CGFloat(index)
frame.size = scrollView.frame.size
let imgView = UIImageView(frame: frame)
imgView.image = UIImage(named: images[index])
self.scrollView.addSubview(imgView)
}
scrollView.contentSize = CGSize(width: (scrollView.frame.size.width * CGFloat(images.count)), height: scrollView.frame.size.height)
scrollView.delegate = self
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
var pageNumber = scrollView.contentOffset.x / scrollView.frame.size.width
pageControl.currentPage = Int(pageNumber)
}
解决方案
会不会testScroll()
来得太早?scrollView
的框架将是(0, 0, 0, 0)
。这同样适用于它的所有图像。这也可以解释您的页面控制。
viewDidLayoutSubviews()
一旦计算了所有子视图的帧,就会触发。那将是一个可以打电话的地方testScroll()
。
推荐阅读
- python - 没有命名模块;PyPi 上传的包
- bluetooth - BLE数据传输速度
- multithreading - Delphi中线程的概念方法
- pytorch - 张量 a (10) 的大小必须与非单例的张量 b (9) 的大小相匹配
- html - 3列布局不会填满屏幕宽度
- google-cloud-platform - Google 云“mk”错误“mk 的标识符 'ch04' 无效。”
- r - 闪亮:模块 UI 的 updateSelectInput(在 insertUI 之后)
- r - 使用 ggplot2 中的 cut 函数分离数值
- angular - 带有参数的 Angular httpclient get 没有到达我的 web api 方法
- c++ - 使用自定义绘图在 Win32 API 中设置按钮文本颜色