7

解決できなかった小さな問題があります。誰かがそれを手伝ってくれることを本当に願っています。以下のコードを使用して、ライブ カメラ ビューのサイズを変更し、中央に配置したいと考えました。

    picker.cameraViewTransform = CGAffineTransformScale(picker.cameraViewTransform, 0.5, 0.56206);
    picker.cameraViewTransform = CGAffineTransformTranslate(picker.cameraViewTransform, 80, 120);

しかし、私が得たのは、画面の左上にある拡大縮小された 1/2 サイズのビューだけでした。「CGAffineTransformTranslate」は何もしないようです。使用しても翻訳が機能しませんでした:

     picker.cameraViewTransform = CGAffineTransformMake(1, 0, 0, 1, 80, 120);

翻訳部分はライブカメラビューには影響しないようです。誰かが私を啓発できることを願っています。

ありがとう。

4

3 に答える 3

5

私は同じ船に乗っていました。私がしたことは、ピッカーフレームを物理的に動かすことでした。

[picker.view setFrame:CGRectMake(xOffset,yOffset,picker.view.frame.size.width,picker.view.frame.size.height)];
于 2012-02-27T00:29:46.443 に答える
1

私は同じ問題に頭を悩ませてきました。プレビューのスケーリングと回転が機能することを確認しましたが、翻訳は無視されているようです。変換が設定されている場合、CGAffineTransform の tx、ty 部分は無視されていると推測します。これは iPhone OS v3.1.2 の場合です。現在、テストする他の OS バージョンはありません。

于 2010-04-14T12:38:21.827 に答える
-1

私は解決策を得ました。メッセージに設定する必要があります:

- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated

サンプルコード:

#pragma mark -
#pragma mark UINavigationControllerDelegate
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{   
    CGFloat width = [[self view] bounds].size.width;
    CGFloat height = width/4*3;
    CGSize sizeOfCamera = CGSizeMake(width, height);
    CGAffineTransform t = CGAffineTransformMakeScale(0.5, 0.5);
    [picker setCameraViewTransform:t];

    // Now the image is automatically aligned to center.
    // Translation matrix also can be applied, but didn't use because it's already aligned to center.
}
于 2010-06-05T18:42:27.930 に答える