我正在尝试创建一个简单的圆形视图。 我以前做过,现在由于某种原因,圆圈不精确(附图像)。 在我的代码中,我采用“sliderPin”视图的高度,并且它的半值用于其图层的cornerRadius。 我也试图获取“sliderPin”视图的约束高度值,但我得到了相同的结果。 *宽度和宽度视图的高度相等。 我的代码:
[self.sliderPin.layer setBorderColor:borderColor];
[self.sliderPin.layer setBorderWidth:2];
self.sliderPin.clipsToBounds = YES;
self.sliderPin.layer.masksToBounds = YES;
[setCornerRadius:CGRectGetHeight(self.sliderPin.frame) / 2];
答案 0 :(得分:3)
最好使用给定方法的UISlider。它可能会解决您的问题。
UIImage *minImage = [[UIImage imageNamed:@"slider_minimum.png"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 5, 0, 0)];
UIImage *maxImage = [[UIImage imageNamed:@"slider_maximum.png"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 5, 0, 0)];
UIImage *thumbImage = [UIImage imageNamed:@"thumb.png"];
[[UISlider appearance] setMaximumTrackImage:maxImage
forState:UIControlStateNormal];
[[UISlider appearance] setMinimumTrackImage:minImage
forState:UIControlStateNormal];
[[UISlider appearance] setThumbImage:thumbImage
forState:UIControlStateNormal];
高度:
您可以通过继承UISlider和覆盖方法
进行自定义- (CGRect)trackRectForBounds:(CGRect)bounds {
CGRect rect = CGRectMake(0, 0, 100, 30);//change it to any size you want
return rect;
}
您可以通过继承相应的方法来自定义更多内容。
感谢。
答案 1 :(得分:0)
确保constraints
没有冲突。如果您使用的是auto layout
,请设置sliderPin
的宽度和高度等于约束或宽高比1:1可能会解决问题。