如何使圆形图像像Instagram的故事轮廓图像

时间:2017-05-25 21:39:19

标签: ios objective-c uiimageview border geometry

enter image description here

我想创建像Instagram的故事情节图片中的圆形图像。它应该有两个圆圈,内圈为白色,外圈颜色为自身颜色不渐变。我尝试过该代码,但只有一个圆圈。如何在imageView图层中添加第二个圆圈?

 self.imageView.layer.cornerRadius = 30;
 self.imageView.layer.borderWidth = 3;
 self.imageView.layer.borderColor = [UIColor whiteColor].CGColor;
 self.imageView.layer.masksToBounds = YES;

你能帮帮我吗?

谢谢:)

1 个答案:

答案 0 :(得分:1)

您可以使用为UIImageView提供多个边框的第三方library

而且,如果您想自己动手,可以UIImageView subView UIView UIView。然后进行borderWidth轮并设置UIImageView并为其添加颜色。对UIView执行相同的操作。

以下是一个例子:

像这样添加UIImageView-(void)viewDidLayoutSubviews { [super viewDidLayoutSubviews]; _profileImage.layer.cornerRadius = 30; _profileImage.layer.borderWidth = 3; _profileImage.layer.borderColor = [UIColor whiteColor].CGColor; _profileImage.layer.masksToBounds = YES; _profileImage.clipsToBounds = true; _profileImage.layer.cornerRadius = _profileImage.frame.size.height/2; _superViewImage.clipsToBounds = true; _superViewImage.layer.masksToBounds = true; _superViewImage.layer.cornerRadius = _superViewImage.frame.size.height/2; _superViewImage.layer.borderWidth = 0.5; _superViewImage.layer.borderColor = (__bridge CGColorRef _Nullable)([UIColor greenColor]); }

然后添加此代码:

    #include<iostream>
    #include<vector>
    #include<string.h>
    using namespace std;
    int n,m;
    void bdfs(bool B[202][208],int x,int y,bool v[202][208]) { //passing array of array as recursion's parameter
        if(x < 0 || y < 0 || x >= n || y >= m)return;
        if(B[x][y] != 0 || v[x][y])return;
        v[x][y] = 1;
        bdfs(B,x,y+1,v);
        bdfs(B,x,y-1,v);
        bdfs(B,x+1,y+1,v);
        bdfs(B,x+1,y,v);
        bdfs(B,x+1,y-1,v);
        bdfs(B,x-1,y+1,v);
        bdfs(B,x-1,y,v);
        bdfs(B,x-1,y-1,v);
    }
    int main(){
        n=202;
        m=208;
        bool B[202][208],v[202][208];
        memset(B, 0, sizeof(B));
        memset(v, 0, sizeof(v));
        bdfs(B,0,0,v);
        return 0;
    }

结果图片将是:enter image description here

为两个边框设置所需的颜色。

希望它有所帮助。 :)