2

Possible Duplicate:
How to set round corners in UI images in iphone

Basically, this is how I add my image preview in my UIScrollView, I add my buttons then my image, but then how can I make my image be round corners too and ADAPT to the buttons shape. Because in my preview it looks like this.

enter image description here

- (void)addImage:(UIImage *)imageToAdd {
    [_images addObject:imageToAdd];
    [_thumbs addObject:[imageToAdd imageByScalingAndCroppingForSize:CGSizeMake(50, 50)]];

    int row = floor(([_thumbs count] - 1) / 5);
    int column = (([_thumbs count] - 1) - (row * 5));

    UIImage *thumb = [_thumbs objectAtIndex:[_thumbs count]-1];
    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    button.frame = CGRectMake(column*60+10, row*60+10, 55, 55);
    [button setImage:thumb forState:UIControlStateNormal];
    [button addTarget:self action:@selector(deleteItem:) forControlEvents:UIControlEventTouchUpInside];
    button.tag = [_images count] - 1;
    // This is the title of where they were created, so we can see them move.s
    [button setTitle:[NSString stringWithFormat:@"%d, %d", row, column] forState:UIControlStateNormal];

    [_buttons addObject:button];
    [scrollView addSubview:button];
    // This will add 10px padding on the bottom as well as the top and left.
    [scrollView setContentSize:CGSizeMake(300, row*60+20+60)];

}

Also, i have tried this, but doesnt work.

UIImageView * roundedView = [[UIImageView alloc] initWithImage: thumb];
// Get the Layer of any view
CALayer * l = [roundedView layer];
[l setMasksToBounds:YES];
[l setCornerRadius:10.0];

// You can even add a border
[l setBorderWidth:4.0];
[l setBorderColor:[[UIColor blueColor] CGColor]];
Community
  • 1
  • 1
Bazinga
  • 2,456
  • 33
  • 76

1 Answers1

5

try to add imageView in background of UIButton with button frame

[imgView setBackgroundColor:[UIColor clearColor]];
imgView.clipsToBounds = TRUE;
imgView.layer.cornerRadius = 20.0;//try different size for corner radious
imgView.layer.borderWidth = 0.0;// give size if you want to border for image

Edit :

use my bellow code insted of your code which you post in question

- (void)addImage:(UIImage *)imageToAdd {
    [_images addObject:imageToAdd];
    [_thumbs addObject:[imageToAdd imageByScalingAndCroppingForSize:CGSizeMake(50, 50)]];

    int row = floor(([_thumbs count] - 1) / 5);
    int column = (([_thumbs count] - 1) - (row * 5));

    UIImage *thumb = [_thumbs objectAtIndex:[_thumbs count]-1];
            UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
        button.frame = CGRectMake(column*60+10, row*60+10, 55, 55);
       [button setBackgroundColor:[UIColor clearColor]];
        //    [button setImage:thumb forState:UIControlStateNormal];

            UIImageView *imgView = [[UIImageView alloc]initWithFrame:CGRectMake(column*60+10, row*60+10, 55, 55)];
        imgView.image =thumb;
        [imgView setBackgroundColor:[UIColor clearColor]];
        imgView.clipsToBounds = TRUE;
        imgView.layer.cornerRadius = 20.0;//try different size for corner radious
        imgView.layer.borderWidth = 0.0;// give size if you want to border for image
        [button addTarget:self action:@selector(deleteItem:) forControlEvents:UIControlEventTouchUpInside];
        button.tag = [_images count] - 1;
    // This is the title of where they were created, so we can see them move.s
    [button setTitle:[NSString stringWithFormat:@"%d, %d", row, column] forState:UIControlStateNormal];

    [_buttons addObject:button];
    [scrollView addSubview:button];
    // This will add 10px padding on the bottom as well as the top and left.
    [scrollView setContentSize:CGSizeMake(300, row*60+20+60)];

}

i hope this help you...

:)

Paras Joshi
  • 20,427
  • 11
  • 57
  • 70