【问题标题】:Add image circle in UIImageView using objective c使用objective c在UIImageView中添加图像圈
【发布时间】:2015-06-24 10:36:49
【问题描述】:

我有一个UIImageView,这是我显示图像的代码:

callRecImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"call_accept.png"]];
        [callRecImage setFrame:CGRectMake(133,top, 36, 40)];
        [self.view addSubview: callRecImage];

要在图像周围添加圆圈,我这样做了:

callRecImage.layer.cornerRadius = callRecImage.frame.size.width /2;       callRecImage.layer.borderWidth = 2.0f;
callRecImage.layer.borderColor = [UIColor grayColor].CGColor; callRecImage.clipsToBounds = YES;

我的图像视图是:

我的输出是:

我想在我的UIImageView 中添加一个圈子,我已关注此链接image in circle frame iOS,但它按预期工作

我想在手机图片周围画一个大圆圈。任何形式的帮助将不胜感激。

提前致谢

【问题讨论】:

  • 尝试让你的 UIImageView 框架在一个正方形中,例如 36、36 或 40、40
  • 我试过了,但我失败了

标签: ios objective-c iphone uiimageview


【解决方案1】:
[callRecImage setFrame:CGRectMake(133,top, 36, 40)];
//Set Height and width equal
//Like 
[callRecImage setFrame:CGRectMake(133,top, 40, 40)];

【讨论】:

    【解决方案2】:

    使用以下代码

    #import <QuartzCore/QuartzCore.h>
    
    callRecImage.layer.masksToBounds = YES;
    callRecImage.layer.cornerRadius = callRecImage.bounds.size.width/2;
    callRecImage.layer.borderWidth = 2.0f;
    callRecImage.layer.borderColor = [UIColor grayColor].CGColor;
    

    【讨论】:

      【解决方案3】:

      添加以下行以仅在ImageView 中填充您的图像

      callRecImage.contentMode = UIViewContentModeScaleAspectFill;
      

      【讨论】:

        【解决方案4】:

        试试这个代码

        callRecImage.layer.backgroundColor=[[UIColor clearColor] CGColor];
        callRecImage.layer.cornerRadius=20;
        callRecImage.layer.borderWidth=2.0;
        callRecImage.layer.masksToBounds = YES;
        callRecImage.layer.borderColor=[[UIColor grayColor] CGColor]
        

        【讨论】:

          【解决方案5】:

          每当您为同一个视图选择layer.cornerRadius 时,圆圈总是比视图矩形小,因此请使用这两种解决方案之一。

          我已经测试过,两种解决方案都可以正常工作

          1. 使用以下代码更改您的图像的UIViewContentMode 并增加您的UIImageView 帧大小(高度和宽度,两者应该相等)

            callRecImage.contentMode = UIViewContentModeCenter;
            

            这样,如果你增加UIImageView 帧大小,它会将你的图像保持在中心,并且不会在UIImageView 内拉伸你的图像

            UIImageView *callRecImage = [[UIImageView alloc] initWithFrame:CGRectMake(133, top, 60, 60)];
            callRecImage.contentMode = UIViewContentModeCenter;
            [callRecImage setImage:[UIImage imageNamed:@"call_accept.png"]];
            callRecImage.layer.cornerRadius = callRecImage.frame.size.width /2;
            callRecImage.layer.borderWidth = 2.0f;
            callRecImage.layer.borderColor = [UIColor grayColor].CGColor; 
            callRecImage.clipsToBounds = YES;
            [self.view addSubview: callRecImage];
            




          1. 添加一个UIView 作为UIImageView 的超级视图,并将layer.cornerRadius 添加到该UIView

            UIView *view = [[UIView alloc] initWithFrame:CGRectMake(133, top, 60, 60)];
            UIImageView *callRecImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"call_accept.png"]];
            [callRecImage setFrame:CGRectMake(view.frame.size.width/2 - 36/2, view.frame.size.height/2 - 40/2, 36, 40)];
            view.layer.cornerRadius = view.frame.size.width /2;
            view.layer.borderWidth = 2.0f;
            view.layer.borderColor = [UIColor grayColor].CGColor;
            view.clipsToBounds = YES;
            [view addSubview: callRecImage];
            [self.view addSubview: view];
            

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-12-03
            • 1970-01-01
            • 2011-05-22
            • 2018-04-23
            相关资源
            最近更新 更多