我是 iOS 编程的新手。请帮我解决以下问题
我有一组视图控制器(.h、.m 和 .XIB)
我有一组视图(.h&.m)
3.视图类负责使用 -->drawRect -->CALayer 和 sublayers 绘制仪表在这个视图中我有初始化方法,这个方法只有我设置了我的图层和子图层的边界
在这里我粘贴某种代码..
- (void)initialize {
CGFloat span = fmin(self.frame.size.width, self.frame.size.height);
frameLayerObject_ = [[OuterFrameLayer alloc] init];
frameLayer = [[CALayer layer] retain];
frameLayer.bounds = CGRectMake(250, 50, 710, 320);
frameLayer.position = self.frame.origin;
frameLayer.needsDisplayOnBoundsChange = YES;
frameLayer.delegate = self.frameLayerObject;
[self.layer addSublayer:frameLayer];
[frameLayer setNeedsDisplay];
self.minValue = 0.0;
self.maxValue = 100.0;
self.tickStartAngle = M_PI;
self.tickArcLength = M_PI
self.lineWidth = span / 200.0;
self.tickLength = span / 12.0;
self.minorTickLength = span / 16.0;
self.tickInset = self.lineWidth;
textLabel_ = [[UILabel alloc] initWithFrame:CGRectMake(0, 3.0 * self.frame.size.height / 10.0, self.frame.size.width, self.frame.size.height / 10.0)];
self.textLabel.textColor = [UIColor whiteColor];
self.textLabel.backgroundColor = [UIColor clearColor];
self.textLabel.font = [UIFont systemFontOfSize:span / 17.77];
[self addSubview:self.textLabel];
needleLayerObject_ = [[gaugeNeedle alloc] init];
self.needleLayerObject.tintColor = [UIColor whiteColor];
needleLayer = [[CALayer layer] retain];
needleLayer.bounds = self.bounds;
needleLayer.position =CGPointMake(((self.bounds.size.width / 2.0)), ((self.bounds.size.height / 2.0)));
needleLayer.needsDisplayOnBoundsChange = YES;
needleLayer.delegate = self.needleLayerObject;
[self.layer addSublayer:needleLayer];
[needleLayer setNeedsDisplay];
}
在我的视图控制器中,我在我的 xib 和 .h 中创建了 5 个视图,并且我为所有 5 个视图分配了相同的视图类。
现在的问题是,所有 5 个视图的位置和边界都不同。但是我的 drawRect 视图类对所有视图只有一组边界。因此,如果我在初始化方法中对一个视图的边界和位置进行硬编码,其余 4 个视图就会受到影响。如果你知道我哪里出错了,请告诉我。
提前致谢..