- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我试图通过覆盖 UIView 的 layerClass 类方法,将 CAGradientLayer 用作 UIView 子类的根层。我为 UIButton 子类做了完全相同的事情,并且一切正常,但是对于 UIView,我没有看到渐变,我只看到默认的白色 View 背景。
这是我的代码:
#import <UIKit/UIKit.h>
#import "UIView+NBStyle.h"
@interface NBStylizedView : UIView
@property (nonatomic, strong) UIColor* highColor;
@property (nonatomic, strong) UIColor* lowColor;
@end
...
#import "NBStylizedView.h"
#import <QuartzCore/QuartzCore.h>
@implementation NBStylizedView
@synthesize highColor;
@synthesize lowColor;
+ (Class) layerClass {
return [CAGradientLayer class];
}
- (void)drawRect:(CGRect)rect {
if (self.highColor && self.lowColor) {
CAGradientLayer* gLayer = (CAGradientLayer*) self.layer;
[gLayer setColors:
[NSArray arrayWithObjects:
(id)[self.highColor CGColor],
(id)[self.lowColor CGColor], nil]];
}
[super drawRect:rect];
}
- (void)setHighColor:(UIColor*)color {
highColor = color;
[self.layer setNeedsDisplay];
}
- (void)setLowColor:(UIColor*)color {
lowColor = color;
[self.layer setNeedsDisplay];
}
@end
任何人都可以阐明我的问题所在吗?
最佳答案
我试过你的代码,一开始也没有看到渐变。如果我在 View 的 awakeFromNib 方法中将 View 的背景色设置为 clearColor,它就起作用了。
关于objective-c - CAGradientLayer 作为 UIView 的 layerClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10560815/
我正在构建一个 OpenGL 应用程序,但在 eaglview.m + (Class)layerClass 上无法工作。 如果我尝试运行它,我会得到: "Undefined symbols for a
在 Objective-C 中,我们通常这样做 + (Class)layerClass { return [CAEAGLLayer class]; } 显然这行不通: CAEAGLLayer.
我正在尝试覆盖方法 layerClass()在 swift 3 中,但我收到错误 Method does not override any method from its superclass . 在
我试图通过覆盖 UIView 的 layerClass 类方法,将 CAGradientLayer 用作 UIView 子类的根层。我为 UIButton 子类做了完全相同的事情,并且一切正常,但是对
我的 UIView 正在为其层使用 TBPaperLayer 的实例。 +(Class)layerClass { return [TBPaperLayer class]; } 我想创建一个 C
我在许多演示 CAEmitterLayer 使用的项目中都看到了这一点,但它如何转化为 MonoTouch aka Xamarin.iOS? + (Class) layerClass { //
给定一个类: public class BaseGameView : OpenTK.Platform.iPhoneOS.iPhoneOSGameView { 在运行时构造BaseGameView会抛出
我是一名优秀的程序员,十分优秀!