- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
示例项目: http://cl.ly/1l1x1A0J3o2X
我有一个 subview Controller ,里面有一个 UITableView,这个 View Controller 位于另一个 View Controller 之上。我想给它的底部圆角(但只有底部)。
在我的 UITableView 子类中,我有这段代码来圆底角。
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
UIBezierPath *maskPath;
maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds byRoundingCorners:(UIRectCornerBottomLeft | UIRectCornerBottomRight) cornerRadii:CGSizeMake(5.0, 5.0)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = self.bounds;
maskLayer.path = maskPath.CGPath;
self.layer.mask = maskLayer;
self.backgroundColor = [UIColor colorWithRed:0.169 green:0.169 blue:0.169 alpha:1];
}
return self;
}
这确实使它们四舍五入,但只要我滚动表格 View ,它就会进一步向上移动并降低高度(至少看起来是这样)。
但是,如果我简单地使用 self.layer.cornerRadius = 5.0
它完全可以正常运行。
有谁知道为什么会出现这种行为?
最佳答案
UIScrollView,以及 UITableView 的子类,实际上是通过更改其呈现内容的边界来呈现其内容。我的猜测是,向 UITableView 的图层添加 mask 实际上是向 View 中的内容添加 mask ,而不是像您想象的那样向容器添加 mask 。
为什么“self.layer.cornerRadius = 5.0”有效,而您的方法无效,我不确定。
对于类似的请求,已经给出了一种更有效的方法,因此我将指导您:
Adding Rounded Corners to only top of UITableView?
基本上,建议是将 UITableView 放入容器中并将 mask 添加到容器中。我相信那会很好。
关于ios - 用 cornerRadius 圆化所有角是可行的,但是如果我只做底部的两个角,它会破坏我的 UITableView 上的滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20587034/
所以这是我的自定义 GroupBox:
我有一个 UILabel,我使用cornerRadius 在图层上创建一个半径。最终目标是让标签看起来像苹果在邮件应用程序中所做的那样。 一开始看起来很棒,但是一旦你深入到该行并返回几次,圆边的质量就
为了实现上述设计,我使用了以下代码。每件事都是完美的。 for(....) { CALayer *layer=[CALayer layer]; [layer setFrame:CGRe
我试图在左下角和右下角的 UIView 上圆角。 extension UIView { func roundBottom(raduis: CGFloat){ let ma
如何根据按钮的边框计算cornerRadius属性来创建圆角。 我不喜欢为每个按钮项重新定义每次角 cornerRadius。 我为 UIButton 创建扩展。 extension UIButton
我想要一个没有定义 CornerRadius 的按钮和另外两个定义了的按钮,我该如何实现?
我想完美地剪辑 UIView 的边界以作为圆形进行交互,但是我将角半径、蒙版和剪辑设置为边界并且它显示正确,它作为正方形移动,如图所示: 我使用的代码是: let bubble1 = UIView(f
我在 MKMapView 层中添加了一个 cornerRadius 类似 [self.routeMapView layer].cornerRadius = 20.0f; 此属性仅对左上角有效。休息完全
我正在尝试制作圆形个人资料图片,并按照本教程末尾设置的步骤 (http://valeriodonfrancesco.com/add-circular-mask-uiimage-easy-way/) 进
这个问题在这里已经有了答案: Circular Image Becoming a Diamond Not Circle - Swift 3 (3 个答案) Cut a UIImage into a
我尝试创建一个按钮并使用该代码设置样式: button.tintColor = UIColor.white button.contentEdgeInsets = UIEdgeInset
我需要沿着圆角矩形创建长度恒定的线条动画。所以我在创建所需的 BezierPath UIBezierPath(roundedRect: CGRect(x: 50, y: 50, width: 100,
在我的 tableviews 自定义单元格中,我有一张图片: 我想要 cornerRadius = 20。但由于某种原因它不起作用我使用了这段代码: cell.offerImage.layer.cor
我总是使用简单的方法来获取 View 圆角 + (void)setRoundedCornersByView:(UIView*) givenView roundAngle:(int)roundAngle
当我尝试使用 app:cornerRadius 设置圆角时,我在我的 android 项目中添加了一个 Material 按钮,我发现它根本不起作用。 最佳答案 只需使用 Material 主题。将
我想在我的整个应用程序上使用圆角,我使用了: [self.window.layer setCornerRadius:5.0]; [self.window.layer setMasksToBounds:
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view
我尝试为 View 的角提供不同大小的角。首先,我将角指定为最小半径的所有角,然后尝试将左侧的 2 个角更改为更大的尺寸。 enter image description here func roun
我在回收站 View 中创建了一个卡片 View ,我的代码运行良好,但现在的问题是卡片 View 在运行时不显示圆边和高程,但它显示在设计代码中。我的代码如下所示 activity_main
我从下面的代码中得到编译时错误。 12sp @font/raleway_bold @color/colorPrimary 25dp
我是一名优秀的程序员,十分优秀!