私はSwift 3.0で作業していて、UIBezierPathを使ってサークルを描いています。私のコードは以下の通りです。私が何を変えても、サークルのエッジはクリッピングされます。円はイメージビューにあります。私はビューの高さ/重さを操作しようとしましたが、それを "アスペクト・フィル" "アスペクト・フィッティング" "センター"などに変更しました。私が見たチュートリアルでは、 "var multiplier:CG Float = 1.0 0.85または別の数値にすると、クリッピングはなくなります。私はこれを試して、それは動作しませんでした。これをどうすれば解決できますか?スウィフトのサークル - クリッピングを取り除くことができません
class Circle1: UIView {
var multiplier:CGFloat = 0.85
//this takes away the "clippinh" you might see in the view
var centerOfCirclesView: CGPoint{
return CGPoint(x:bounds.midX, y:bounds.midY)
}
var halfOfViewsSize: CGFloat{
return min(bounds.size.height, bounds.size.width)/2
}
var lineWidth:CGFloat = 1.0
//circle radius compute
var full = CGFloat(M_PI * 2)
var quarter = CGFloat(M_PI/2)
var half = CGFloat(M_PI)
var threeQuarters = CGFloat(3 * M_PI/2)
func drawCircleCenteredAt(_:CGPoint, withRadius radius:CGFloat) -> UIBezierPath{
let circlePath = UIBezierPath(arcCenter: centerOfCirclesView,
radius: halfOfViewsSize,
startAngle: 00,
endAngle: full,
clockwise: false)
circlePath.lineWidth = lineWidth
return circlePath
}
override func draw(_ rect: CGRect) {
UIColor(hue: 0.7194, saturation: 0, brightness: 0.52, alpha: 1.0).set()
lineWidth = 15.0
drawCircleCenteredAt(centerOfCirclesView, withRadius: halfOfViewsSize).stroke()
}
}
class Circle2: UIView {
var multiplier:CGFloat = 0.85
//this takes away the "clippinh" you might see in the view
var centerOfCirclesView: CGPoint{
return CGPoint(x:bounds.midX, y:bounds.midY)
}
var halfOfViewsSize: CGFloat{
return min(bounds.size.height, bounds.size.width)/2
}
var lineWidth:CGFloat = 1.0
//circle radius compute
var full = CGFloat(M_PI * 2)
var quarter = CGFloat(M_PI/2)
var half = CGFloat(M_PI)
var threeQuarters = CGFloat(3 * M_PI/2)
func drawCircleCenteredAt(_:CGPoint, withRadius radius:CGFloat) -> UIBezierPath{
let circlePath = UIBezierPath(arcCenter: centerOfCirclesView,
radius: halfOfViewsSize,
startAngle: 00,
endAngle: half,
clockwise: false)
circlePath.lineWidth = lineWidth
return circlePath
}
}
あなたの0.85乗算器または0.5 *線幅を減算することにより乗算することにより、どちらかあなたの半径を小さくする必要があります。 – vacawama
Swift 3では 'M_PI'の代わりに' .pi'を使うべきです –