2016-10-19 9 views
0

CGGeometryを使用していますが、xyの値としてinfを返します。アプリケーション内のinsetByはCGRectのInfを返します

let frame = CGRect(x: xOffset[row], y: yOffset[row], width: width, height: height) 
    print(frame)  //(0.0, 0.0, 54.0, -3.0) 

    let insetFrame = frame.insetBy(dx: 4.0, dy: 2.0) 
    print(insetFrame) //(inf, inf, 0.0, 0.0) 

このフレーム原因のクラッシュ:

CGGeometry

public func insetBy(dx: CGFloat, dy: CGFloat) -> CGRect 

は以下の出力を持つ私のコードです。 ご了承ください。

+1

負の高さはどういう意味ですか? :) – alexburtnik

+0

高さの計算が動的で、他の変数に依存しているので、それをキャッチする私の間違い。ありがとう – technerd

答えて

2

負の幅と高さは意味をなさないので、明らかにCGRectの計算が分かりません。

ちょうどwidthheightに負の値を使用していない、あなたは大丈夫:

let frame = CGRect(x: xOffset[row], y: yOffset[row], width: max(8, width), height: max(4, height)) 

あなたはあなたの最初のフレームがより小さくなることはありませんことを確認するために、いくつかのmaxInsetXmaxInsetY定数を定義することができます両方の次元で2*maxInset

+0

実際に高さの値が負になりました。ありがとうございました – technerd

+0

@technerd実際には0を渡すと、後で正の値でその次元を挿入すると問題は解決しません。更新された答えを見る – alexburtnik

関連する問題