iOS - 以编程方式实现SFGaugeView

时间:2014-02-08 15:47:03

标签: ios objective-c xcode uistoryboard

我想将SFGaugeView添加到我的应用中。

当我在故事板中创建UIView时,将类更改为SFGaugeView并连接Outlet,而不是一切都很好。但是......当我以编程方式(这是我需要的)时,它不起作用。

这是我的进步:

#import SFGaugeView.h

然后,我在.h文件中设置了属性(@property (nonatomic) IBOutlet SFGaugeView *middleTachometer;

在.m文件中,我有这段代码:

self.middleTachometer = [[SFGaugeView alloc] initWithFrame:CGRectMake(0, 0, 320, 504)];
self.middleTachometer.bgColor = [UIColor colorWithRed:102/255.0 green:175/255.0 blue:102/255.0 alpha:1];
self.middleTachometer.needleColor = [UIColor colorWithRed:27/255.0 green:103/255.0 blue:107/255.0 alpha:1];
self.middleTachometer.maxlevel = 10;
self.middleTachometer.minImage = @"minImage";
self.middleTachometer.maxImage = @"maxImage";

SFGaugeView *viewC = [[SFGaugeView alloc] initWithFrame:CGRectMake(0, 0, 320, 504)];

[viewC addSubview:self.middleTachometer];
[self.view addSubview:viewC];

结果是Gauge在视图中,但它不与手势交互(和故事板,它确实)。请问哪里有问题?谢谢!

1 个答案:

答案 0 :(得分:2)

为什么你有两个SFGaugeViews?我想改变你的代码是这样的:

self.middleTachometer = [[SFGaugeView alloc] initWithFrame:CGRectMake(0, 0, 320, 504)];
self.middleTachometer.bgColor = [UIColor colorWithRed:102/255.0 green:175/255.0  blue:102/255.0 alpha:1];
self.middleTachometer.needleColor = [UIColor colorWithRed:27/255.0 green:103/255.0 blue:107/255.0 alpha:1];
self.middleTachometer.maxlevel = 10;
self.middleTachometer.minImage = @"minImage";
self.middleTachometer.maxImage = @"maxImage";

[self.view addSubview:self.middleTachometer];

应该做的伎俩!

编辑: 好吧,让我感兴趣 - 我重新创建了一个测试项目,这个问题在SFGaugeView类中是实际的 - 当手动添加它时,永远不会调用setup方法。 因此,您可以手动调用awakeFromNIB方法或等待我的拉取请求(https://github.com/simpliflow/SFGaugeView/pull/1)合并进来!