2

可能重复:
如何在 iphone 的 UI 图像中设置圆角

基本上,这就是我在我的图像中添加图像预览的方式UIScrollView,我添加了按钮,然后添加了图像,但是我怎样才能使我的图像也变成圆角并适应按钮的形状。因为在我的预览中它看起来像这样。

在此处输入图像描述

- (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)];

}

另外,我试过这个,但不起作用。

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]];
4

1 回答 1

5

尝试使用按钮框架在 UIButton 的背景中添加 imageView

[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

编辑 :

使用我的波纹管代码插入您发布的代码

- (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)];

}

我希望这可以帮助你...

:)

于 2012-10-04T05:52:25.497 回答