3

私のプロジェクトでは、Facebook API「three20」を使用しています:https ://github.com/facebook/three20/

次に、TTPhotoViewControllerをカスタマイズする必要があります。ギャラリーには「自動ズーム」があります。完全な幅と高さが常に使用されます。 ここに画像の説明を入力してください

欠点は、完全な写真を見ることができず、重要な情報が切り取られたり切り取られたりする可能性があることです。

自動ズームを無効にするにはどうすればよいですか?

ありがとう!


2011年3月3日編集:

ローマの答えは良いようですが、残念ながらそれは私を助けません。はい、コンテンツモードUIViewContentModeScaleAspectFillが問題です。

ビューのサイズに合わせてコンテンツを拡大縮小します。コンテンツの一部は、ビューの境界を埋めるためにクリップされる場合があります。

しかし、私の問題を解決するコンテンツモードは他にありません。私は、three20の内部を深く見て、自分で画像を拡大縮小する必要があると思います。しかし、私はこれを行うためにあなたの助けが必要です!それで、今日(2011年3月3日)新しい「報奨金」を始めます...

どうもありがとうございます!!


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 が特定の質問に答えてくれるので、質問は 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 に答える