gpt4 book ai didi

ios - 关于使用矩形图像创建圆形 UIImageView 的问题

转载 作者:行者123 更新时间:2023-11-29 01:15:53 25 4
gpt4 key购买 nike

现在我想创建一个圆形 ImageView ,当我向其应用不同形状(如矩形)图像时,它仍然可以保持圆形形状。谷歌搜索后,我有以下代码:

self.avatarImageView = ({
UIImageView *imageView = [UIImageView new];
imageView.translatesAutoresizingMaskIntoConstraints = NO;
imageView.image = [UIImage imageNamed:@"blueRoundRect"];
imageView.alpha = 1.0;
imageView;
});
[self.view addSubview:self.avatarImageView];

[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make){
make.top.equalTo(self.loginButton.mas_bottom);
make.width.equalTo(@(2 * avatarImageViewRadius));
make.height.equalTo(@(2 * avatarImageViewRadius));
make.centerX.equalTo(self.view.mas_centerX);
}];
self.avatarImageView.layer.cornerRadius = avatarImageViewRadius; //Create a circular avatar imageView.
self.avatarImageView.layer.masksToBounds = YES;

代码是用viewDidLoad编写的,正如你所看到的,我在Masonry的帮助下进行了自动布局。 .但是当我运行应用程序时,imageView仍然是矩形,但图像形状似乎从矩形变为圆角矩形(我使用的原始图像是矩形蓝色图像)。有什么想法吗? The result from the view hierarchy debugger

如果我创建一个新类 AvatarImageView 并将以下代码放入其中:

- (instancetype)initWithImage:(UIImage *)image
{
self = [super initWithImage:image];

if (self)
{
self.translatesAutoresizingMaskIntoConstraints = NO;
self.image = image;
}

return self;
}

- (void)layoutSubviews
{
[super layoutSubviews];

self.layer.cornerRadius = self.frame.size.width / 2;
self.layer.masksToBounds = YES;
}

在 View Controller 的 viewDidLoad 中我写道:

self.avatarImageView = [[BBTAvatarImageView alloc] initWithImage:[UIImage imageNamed:@"blueRoundRect"]];
[self.view addSubview:self.avatarImageView];
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make){
make.top.equalTo(self.loginButton.mas_bottom);
make.width.equalTo(@(2 * avatarImageViewRadius));
make.height.equalTo(@(2 * avatarImageViewRadius));
make.centerX.equalTo(self.view.mas_centerX);
}];

但是结果和以前一样。

最佳答案

您可以通过取一个正方形并对其应用圆角来得到一个圆,圆角半径等于边长的 1/2。

你不能从带圆角的矩形得到椭圆形,除非你可以将角变成非圆形,Apple 不再支持它。您必须自己构建角形状。

如果您尝试在 viewDidLoad 中设置圆形,它可能不会起作用。在 viewDidLoad 中,您的 View Controller 的 View 尚未针对当前屏幕尺寸和旋转调整大小/布局。您想在布局 subview 中计算尺寸和圆角半径值。

关于ios - 关于使用矩形图像创建圆形 UIImageView 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35191262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com