0

私は自分の画像を回転させます:

UIImage *image = [UIImage imageNamed:@"doneBtn.png"];
CGImageRef imgRef = image.CGImage;

CGFloat width = CGImageGetWidth(imgRef);
CGFloat height = CGImageGetHeight(imgRef);

CGAffineTransform transform = CGAffineTransformIdentity;
CGRect bounds = CGRectMake(0, 0, width, height);
transform = CGAffineTransformRotate(transform, degreesToRadians(10));

UIGraphicsBeginImageContext(bounds.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextConcatCTM(context, transform);

CGContextDrawImage(UIGraphicsGetCurrentContext(), CGRectMake(0,0,width,height), imgRef);
UIImage *imageCopy = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

img.image=imageCopy;

画像を表示すると、10 度未満で表示されますが、画像の端が切れています。

誰かがこれを修正する方法を知っていますか? 明確にするための画像を次に示します。

代替テキスト http://img197.imageshack.us/img197/7077/problemkfr.png

私は昨日一日中試しましたが、わかりません。

別の例の画像:

代替テキスト http://img25.imageshack.us/img25/3370/afbeelding6b.png

4

3 に答える 3

1

SliderAppViewController.h のコード

#import <UIKit/UIKit.h>

@interface SliderAppViewController : UIViewController {
    IBOutlet UIImageView *imgView;
    IBOutlet UISlider *mySlider;
}
@property (nonatomic, retain) IBOutlet UISlider *mySlider;
- (IBAction) sliderValueChanged:(id)sender;  

@end

CODE IN SliderApp.m

#import "SliderAppViewController.h"

@implementation SliderAppViewController
@synthesize mySlider;

- (IBAction) sliderValueChanged:(UISlider *)sender {  

    imgView.transform = CGAffineTransformMakeRotation(45);

} 
- (void)viewDidLoad {
    mySlider.minimumValue = 1.0;
    mySlider.maximumValue = 100.0;

        //other code
}

次に、IBで接続します

于 2011-03-26T07:33:37.693 に答える
0

ここでの問題はCALayerのアンカーです。ここにサンプルコードはありませんが、ビューCALayerのanchorプロパティを試してみると、ビューを希望どおりに表示できるはずです。後でサンプルコードを投稿してみます

于 2009-08-03T13:31:09.993 に答える
0

私は今それを解決しました、境界の幅/高さの値と CGContextDrawImage の x/y を変更する必要があります

CGRect bounds = CGRectMake(0, 0, width+10, height+10);
CGContextDrawImage(UIGraphicsGetCurrentContext(), CGRectMake(10,0,width,height), imgRef);
于 2009-08-03T14:54:07.593 に答える