我正在使用旋转轮开发iPad应用程序。我使用了此链接http://www.raywenderlich.com/9864/how-to-create-a-rotating-wheel-control-with-uikit中给出的代码。在此我增加了旋转轮框尺寸。我使用下面的代码
SMRotaryWheel *wheel = [[SMRotaryWheel alloc] initWithFrame:CGRectMake(0, 0, 400, 400)
andDelegate:self
withSections:8];
wheel.center = CGPointMake(400,300);
[self.view addSubview:wheel];
这会增加图像尺寸。用于旋转的轮子尺寸相同。我想将轮圈增加到bebig。我用下面的代码绘制了轮子。请帮我做。
- (void) drawWheel {
container = [[UIView alloc] initWithFrame:self.frame];
CGFloat angleSize = 2*M_PI/numberOfSections;
for (int i = 0; i < numberOfSections; i++) {
UIImageView *im = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"segment.png"]];
im.layer.anchorPoint = CGPointMake(1.0f, 0.5f);
im.layer.position = CGPointMake(container.bounds.size.width/2.0-container.frame.origin.x,
container.bounds.size.height/2.0-container.frame.origin.y);
im.transform = CGAffineTransformMakeRotation(angleSize*i);
im.alpha = minAlphavalue;
im.tag = i;
if (i == 0) {
im.alpha = maxAlphavalue;
}
UIImageView *cloveImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 120, 120)];
cloveImage.image = [UIImage imageNamed:[NSString stringWithFormat:@"icon%i.png", i]];
[im addSubview:cloveImage];
[container addSubview:im];
}
container.userInteractionEnabled = NO;
[self addSubview:container];
cloves = [NSMutableArray arrayWithCapacity:numberOfSections];
UIImageView *bg = [[UIImageView alloc] initWithFrame:self.frame];
bg.image = [UIImage imageNamed:@"bg.png"];
[self addSubview:bg];
UIImageView *mask = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 58, 58)];
mask.image =[UIImage imageNamed:@"centerButton.png"] ;
mask.center = self.center;
mask.center = CGPointMake(mask.center.x, mask.center.y+3);
[self addSubview:mask];
if (numberOfSections % 2 == 0) {
[self buildClovesEven];
} else {
[self buildClovesOdd];
}
[self.delegate wheelDidChangeValue:[self getCloveName:currentValue]];
}
我需要将灰色圆圈放大到外面的蓝色圆圈。
答案 0 :(得分:1)
我不是专家,但我就是这样做的。记住,我已经使用过标签,但它的尺寸很好。希望你可以从这个
获得一些帮助for (int i = 0; i < numberOfSections; i++) {
UIImageView *im = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"segment.png"]];
im.frame = CGRectMake( 0 ,0, self.frame.size.width / 2.2, M_PI * (container.frame.size.width / numberOfSections) );
im.layer.anchorPoint = CGPointMake(1.0f, 0.5f);
im.layer.position = CGPointMake(container.bounds.size.width/2.0-container.frame.origin.x,
container.bounds.size.height/2.0-container.frame.origin.y);
im.transform = CGAffineTransformMakeRotation(angleSize*i);
im.tag = i;
[container addSubview:im];
}
现在将这些部分的大小调整为正确的大小,
您可能需要使用这些值来获得所需的效果。 你将遇到的问题是原始图像的曲线,它会导致剪裁。 更好的方法可能是动态绘制图像,但我仍然在学习如何做到这一点。
答案 1 :(得分:0)
我通过增加扇区图像的大小来解决这个问题。现在我有了一个大轮子。轮子基于我们用于扇区的图像大小。感谢您的所有帮助