在我的项目中,我使用Facebook API“three20”:https://github.com/facebook/three20/
现在,我需要自定义TTPhotoViewController。 在画廊中,有一个“自动缩放”。始终使用完整的宽度和高度:
缺点是您无法看到完整的照片,并且可能会切断/裁剪重要信息。
如何停用自动变焦?
谢谢!
罗曼的回答似乎很好,但不幸的是,这对我没有帮助。是的,内容模式UIViewContentModeScaleAspectFill
是问题所在:
缩放内容以填充大小 风景。部分内容 可以剪裁以填充视图 界限。
但是没有其他内容模式可以解决我的问题。我想,我必须深入了解three20并自己缩放图像。但我需要你的帮助才能做到这一点!所以,今天我将开始一个新的“赏金”(03/03/2011)...
非常感谢!!
最后我明白了!!罗马的答案是对的,我必须使用UIViewContentModeScaleAspectFit
。
问题是:我在Photo
- 对象中使用了错误的大小! 320x480为我工作:
NSMutableArray *photos = [NSMutableArray new];
for (Information *info in allImages) {
NSString *binaryId = info.binary;
NSString *fileName = [NSString stringWithFormat:@"documents://img/%@.jpg", binaryId];
Photo *photo = [[[Photo alloc] initWithCaption:info.name
urlLarge:fileName
urlSmall:fileName
urlThumb:fileName
size:CGSizeMake(320, 480)] autorelease];
[photos addObject:photo];
}
self.photoSource = [[PhotoSet alloc] initWithTitle:@"Photos" photos:photos];
答案 0 :(得分:6)
最简单的方法是破解TTPhotoView - 围绕第135行(函数setImage)更改
self.contentMode = UIViewContentModeScaleAspectFill;
到
self.contentMode = UIViewContentModeScaleAspectFit;
遗憾的是,目前似乎没有另一种方式。
答案 1 :(得分:3)
你应该将你的问题授予罗马,因为他回答你的具体问题,但我想建议你不要考虑使用three20并自己实现你的图像滚动。从iTunes上的WWDC 2010会话视频中查看Session 104, Designing Apps with Scroll Views(需要ADC登录)。它将指导您完全了解如何实现此类界面,并允许您保持您的应用程序精益,而无需将整个three20库添加到您的代码中。
答案 2 :(得分:0)
在 TTScrollView 类
中进行此更改方法
- (CGRect)frameOfPageAtIndex:(NSInteger)pageIndex
在此方法中,更改以下行
if (size.width > size.height) {
到
if (size.width / size.height > self.width / self.height) {
这对我有用。