обрезать увеличенное изображение в ImageView внутри scrollView

Я уже прилагаю много усилий со своей стороны. наконец мне нужна помощь. спасибо

Цель :1 )Как разместить imageView внутри ScrollView

2 )Как обрезать увеличенное изображение внутри scrollView.

У меня есть imageView внутри Scroll View. Я хочу обрезать изображение после увеличения, которое отображается внутри границы прокрутки. Я уже обрезал изображение, но оно не совсем то, что я хочу.

Здесь я установил backgroundColor Black в свой scrollView. И когда я помещаю в него imageView, он не подходит.enter image description here

после увеличения изображение внутри прокрутки

enter image description here

а после кадрирования изображение

enter image description here

и мой код здесь:

- (void)viewDidLoad
{
    [super viewDidLoad];

    CGRect frame1 = CGRectMake(50,50,200,200);

    CGRect frame2 = CGRectMake(50,50,200,200);

    imageView1=[[UIImageView alloc]initWithFrame:frame1];

   imageView1.image= [UIImage imageNamed:@"back.jpeg"];

   imageView1.backgroundColor=[UIColor brownColor];

   imageView1.contentMode = UIViewContentModeScaleAspectFit;



   scroll=[[UIScrollView alloc]initWithFrame:frame2];

   scroll.backgroundColor=[UIColor blackColor];

  [scroll addSubview:imageView1];

  scroll.delegate=self;

 [self.view addSubview:scroll];

 [self setContentSizeForScrollView];

 self.imageView1.userInteractionEnabled = YES;

}

настройка размера прокрутки содержимого

-(void)setContentSizeForScrollView
{
 // scroll.contentSize = CGSizeMake(imageView1.frame.size.width,imageView1.frame.size.height);

    scroll.contentSize = CGSizeMake(200, 200);
   scroll.minimumZoomScale =.50;
  scroll.maximumZoomScale = 1.5;
}

и моя логика обрезки

-(IBAction)cropButtonClicked
{
    //Calculate the required area from the scrollview

CGRect rect = CGRectMake(50, 50, 200,200);


UIImage *image = [self imageByCropping:imageView1.image toRect:rect];

imageView1.image=image;


imageView1.contentMode = UIViewContentModeScaleAspectFit;


 }

И этот метод обрезки изображения:

- (UIImage*)imageByCropping:(UIImage *)myImage toRect:(CGRect)cropToArea{
    CGImageRef cropImageRef = CGImageCreateWithImageInRect(myImage.CGImage, cropToArea);
    UIImage* cropped = [UIImage imageWithCGImage:cropImageRef];

    CGImageRelease(cropImageRef);
    return cropped;
}
7
задан Stack.Blue 12 July 2012 в 06:48
поделиться