TTPhotoViewController:停用图库自动缩放

时间:2011-01-24 17:35:19

标签: iphone objective-c ios three20 ttphotoviewcontroller

在我的项目中,我使用Facebook API“three20”:https://github.com/facebook/three20/

现在,我需要自定义TTPhotoViewController。 在画廊中,有一个“自动缩放”。始终使用完整的宽度和高度: enter image description here

缺点是您无法看到完整的照片,并且可能会切断/裁剪重要信息。

如何停用自动变焦?

谢谢!


编辑03-Mar-2011:

罗曼的回答似乎很好,但不幸的是,这对我没有帮助。是的,内容模式UIViewContentModeScaleAspectFill是问题所在:

  

缩放内容以填充大小   风景。部分内容   可以剪裁以填充视图   界限。

但是没有其他内容模式可以解决我的问题。我想,我必须深入了解three20并自己缩放图像。但我需要你的帮助才能做到这一点!所以,今天我将开始一个新的“赏金”(03/03/2011)...

非常感谢!!


编辑于2011年3月7日:

最后我明白了!!罗马的答案是对的,我必须使用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];

3 个答案:

答案 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) { 

这对我有用。