在我的服务器上,每个图像有三个文件。
- 缩略图文件,裁剪为 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;
}
}
记录调用这些不同的值后,会发生以下情况:
- 加载缩略图页面时,仅调用缩略图(如预期的那样)
- 点击图片时,会显示缩略图,而不是小图片。
- 出现该缩略图后,直接加载大图(不显示小图)。
我希望发生的事情如下
- 这是相同的(缩略图按预期在主页上加载)
- 点击图片时,先加载小图
- 然后加载大图。
或者,以下内容
- 缩略图
- 直接转到大图。
拇指的问题是我将它裁剪成正方形。
这意味着当主查看器中显示缩略图时(点击拇指后),它会过大,而当加载大图像时,它会立即缩小以适合。
这看起来真的很糟糕,对我来说,如果它在缩略图 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/