我有viewController
将一堆图片加载到scrollView
。首次输入时需要花费一些时间才能加载,因此会降低UI的速度。我正在努力寻找最好的解决方法。也许我一次只能加载一定数量的图像,但我想我可以在它在前一个视图控制器中显示之前加载它。
以下是viewController
中需要很长时间才能加载的功能:
func loadImages() {
var documentPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSString
var files: NSArray = NSFileManager.defaultManager().contentsOfDirectoryAtPath(documentPath, error: nil)!
var currentX: CGFloat = 0.0
for image in files {
var im : NSString = image as NSString
var imagePath = documentPath.stringByAppendingPathComponent(im)
var image = UIImage(contentsOfFile: imagePath)
var imageView = UIImageView(image: image)
var rect = imageView.frame
rect.origin.x = currentX
imageView.frame = rect
// imageView.contentMode = .ScaleAspectFill
imageView.frame.size.width = UIScreen.mainScreen().bounds.width
imageView.frame.size.height = UIScreen.mainScreen().bounds.height
currentX += imageView.frame.size.width
self.scrollView.addSubview(imageView)
}
// currentX += UIScreen.mainScreen().bounds.width
self.scrollView.contentSize = CGSizeMake(currentX, self.scrollView.frame.size.height)
self.scrollView.autoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleLeftMargin | UIViewAutoresizing.FlexibleRightMargin
}
在我之前的视图控制器中,我尝试过:
var imageView = ImagesViewController().view
但似乎没有这样做。我得到:fatal error: unexpectedly found nil while unwrapping an Optional value
有什么办法吗?或者你会推荐另一种解决方案?
感谢。
答案 0 :(得分:1)
我认为你的问题不在UI中。你在哪里调用loadImage方法? (最好不要在主队列中加载图像)为了更快速地处理图像,你可以解压缩它们。
UIGraphicsBeginImageContextWithOptions(CGSizeMake(1, 1), NO, 0);
[image drawInRect:CGRectMake(0, 0, 1, 1)];
UIGraphicsEndImageContext();
答案 1 :(得分:0)
在init()或您正在使用的任何自定义初始化程序中调用loadImages()。