php - three20 gallery如何加载图片?

标签 php iphone ios gallery three20

在我的服务器上,每个图像有三个文件。

  • 缩略图文件,裁剪为 128 x 128。
  • 一个小文件,我的宽高比最大为 160 x 240。
  • 一个大文件,我的宽高比最大为 960 x 540。

我将这些 URL 返回到 three20 的画廊的方法如下所示:

- (NSString*)URLForVersion:(TTPhotoVersion)version {
    switch (version) {
        case TTPhotoVersionLarge:
            return _urlLarge;
        case TTPhotoVersionMedium:
            return _urlSmall;
        case TTPhotoVersionSmall:
            return _urlSmall;
        case TTPhotoVersionThumbnail:
            return _urlThumb;
        default:
            return nil;
    }
}

记录调用这些不同的值后,会发生以下情况:

  1. 加载缩略图页面时,仅调用缩略图(如预期的那样)
  2. 点击图片时,会显示缩略图,而不是小图片。
  3. 出现该缩略图后,直接加载大图(不显示小图)。

我希望发生的事情如下

  1. 这是相同的(缩略图按预期在主页上加载)
  2. 点击图片时,先加载小图
  3. 然后加载大图。

或者,以下内容

  1. 缩略图
  2. 直接转到大图。

拇指的问题是我将它裁剪成正方形。

这意味着当主查看器中显示缩略图时(点击拇指后),它会过大,而当加载大图像时,它会立即缩小以适合。

这看起来真的很糟糕,对我来说,如果它在缩略图 View 中加载缩略图,然后在详细 View 中加载小图像,然后是大图像,会更有意义。

有人对如何解决这个问题有什么建议吗?
简单地使拇指具有相同的纵横比是最好的方法吗?

如果有任何关于这个问题的建议,我将不胜感激

最佳答案

查看 three20 源代码,我可以看到 TTPhotoView使用以下逻辑加载预览图像:

- (BOOL)loadPreview:(BOOL)fromNetwork {
  if (![self loadVersion:TTPhotoVersionLarge fromNetwork:NO]) {
    if (![self loadVersion:TTPhotoVersionSmall fromNetwork:NO]) {
      if (![self loadVersion:TTPhotoVersionThumbnail fromNetwork:fromNetwork]) {
        return NO;
      }
    }
  }
  return YES;
}

问题在于,由于您的小图像位于服务器上而不是本地,因此代码会跳过图像并使用缩略图进行预览。

我建议您最好的解决方案是编辑缩略图,使它们具有与大图像相同的纵横比。这似乎是这个类的开发者所期望的!

关于php - three20 gallery如何加载图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7946481/

相关文章:

PHP - 无法访问外部 URL

php - 如何查看从 Objective C cocoa 发送到 php 的 GET 请求的响应

iphone - 来自 url 的半图像显示

iphone - 如何在 Google Analytics for iOS 中设置页面标题?

iPhone UINavigationBar 向上/向下移动

ios - Firebase Swift 检查用户是否存在无法正常工作

php - PDO fatal error : Cannot use object of type PDOException as array

php - 为什么 MySQL ZIP 存档中没有 my-default.ini?

ios - 正确取消NSURLConnection?

ios - 核心数据 - 一对多关系变得零