如何使用 Autoresizing Masks 对 UIImageView 进行舍入?
How to round an UIImageView with Autoresizing Masks?
大家好。
我正在创建一个 iOS 应用程序。其中我在 UITableView 单元格上有一个 ImageView。问题是每当我通过将它的高度或宽度除以 2 来创建一个椭圆形时,它就会变成圆形。虽然当我删除自动调整大小时它工作正常。有人可以在这里帮忙吗?
是的,你应该让你的 UIImageview 宽度和高度等于你的 UITableviewcell 的高度,然后将它除以二...
添加这个通用方法:
func addRoundedCorner(viewToRound:UImageView, radius:CGFloat) {
var layer:CALayer = viewToRound.layer;
layer.cornerRadius=radius
layer.masksToBounds = true
} //F.E.
像这样传递您的图像视图:
self.addRoundedCorner(YourUImageView, radius:CGFloat(YourUImageView.frame.size.width/2.0))
注意:应用它并适当地自动调整大小,否则它将无法正常工作
谢谢
我发现 UITableViewCell 在单元格中显示圆形图像时会出现与大小 classes 相关的奇怪影响。如果您对 iPad 和 iPhone 上的图像使用不同的大小限制,情况尤其如此。为了解决这个问题,我将以下内容添加到我的单元格 class。 self.myImageView
是我想要圆形的单元格 UIImageView。
如果图像框架在布局过程中发生变化,这还可以确保您获取图像框架中的最新变化。
- (void) layoutSubviews
{
[super layoutSubviews];
//
// Make the image round using the latest frame size.
//
CALayer *l=[self.myImageView layer];
[l setMasksToBounds:YES];
[l setCornerRadius:self.myImageView.frame.size.width/2];
// No border just now
[l setBorderWidth:0.0];
[l setBorderColor:[[UIColor blackColor] CGColor]];
}
代码假设图像是方形的,它需要这样才能工作。
大家好。 我正在创建一个 iOS 应用程序。其中我在 UITableView 单元格上有一个 ImageView。问题是每当我通过将它的高度或宽度除以 2 来创建一个椭圆形时,它就会变成圆形。虽然当我删除自动调整大小时它工作正常。有人可以在这里帮忙吗?
是的,你应该让你的 UIImageview 宽度和高度等于你的 UITableviewcell 的高度,然后将它除以二...
添加这个通用方法:
func addRoundedCorner(viewToRound:UImageView, radius:CGFloat) {
var layer:CALayer = viewToRound.layer;
layer.cornerRadius=radius
layer.masksToBounds = true
} //F.E.
像这样传递您的图像视图:
self.addRoundedCorner(YourUImageView, radius:CGFloat(YourUImageView.frame.size.width/2.0))
注意:应用它并适当地自动调整大小,否则它将无法正常工作 谢谢
我发现 UITableViewCell 在单元格中显示圆形图像时会出现与大小 classes 相关的奇怪影响。如果您对 iPad 和 iPhone 上的图像使用不同的大小限制,情况尤其如此。为了解决这个问题,我将以下内容添加到我的单元格 class。 self.myImageView
是我想要圆形的单元格 UIImageView。
如果图像框架在布局过程中发生变化,这还可以确保您获取图像框架中的最新变化。
- (void) layoutSubviews
{
[super layoutSubviews];
//
// Make the image round using the latest frame size.
//
CALayer *l=[self.myImageView layer];
[l setMasksToBounds:YES];
[l setCornerRadius:self.myImageView.frame.size.width/2];
// No border just now
[l setBorderWidth:0.0];
[l setBorderColor:[[UIColor blackColor] CGColor]];
}
代码假设图像是方形的,它需要这样才能工作。