3

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

现在,我需要自定义 TTPhotoViewController。在画廊中,有一个“自动缩放”。始终使用完整的宽度和高度: 在此处输入图像描述

缺点是您看不到完整的照片,重要信息可能会被剪切/裁剪。

如何禁用自动缩放?

谢谢!


编辑 2011 年 3 月 3 日:

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

缩放内容以填充视图的大小。内容的某些部分可能会被剪裁以填充视图的边界。

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

非常感谢你!!


编辑 2011 年 3 月 7 日:

终于我明白了!!罗马的答案是对的,我必须使用UIViewContentModeScaleAspectFit.

问题是:我在Photo-Object 中使用了错误的大小!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];
4

3 回答 3

6

最简单的方法是破解 TTPhotoView - 在第 135 行(函数 setImage)更改

self.contentMode = UIViewContentModeScaleAspectFill;

self.contentMode = UIViewContentModeScaleAspectFit;

可悲的是,目前似乎没有另一种方式。

于 2011-01-24T19:48:49.467 回答
3

您应该将您的问题授予 roman,因为他回答了您的具体问题,但我想建议您应该考虑不使用 three20 并自己实现您的图像滚动器。观看 iTunes 上 WWDC 2010 会议视频中的第 104 场会议,使用滚动视图设计应用程序(需要 ADC 登录)。它会引导您准确了解如何实现这种类型的接口,并允许您保持应用程序精简,而无需将整个 three20 库添加到您的代码中。

于 2011-02-23T16:52:55.937 回答
0

在TTScrollView类中进行此更改

在方法中

- (CGRect)frameOfPageAtIndex:(NSInteger)pageIndex 

在此方法中,更改以下行

if (size.width > size.height) { 

if (size.width / size.height > self.width / self.height) { 

这对我有用。

于 2011-03-05T09:57:18.963 回答