CGSize
がCGSize
より小さいか等しいことを確認します。 like:2つのCGSize変数を比較するには?
CGSize firstSize = CGSizeMake(1.0,1.0);
CGSize secondSize = CGSizeMake(5.0,3.0);
if(firstSize <= secondSize){
Do Stuff . . .
}
これをどのように比較すればよいですか?
CGSize
がCGSize
より小さいか等しいことを確認します。 like:2つのCGSize変数を比較するには?
CGSize firstSize = CGSizeMake(1.0,1.0);
CGSize secondSize = CGSizeMake(5.0,3.0);
if(firstSize <= secondSize){
Do Stuff . . .
}
これをどのように比較すればよいですか?
if(firstSize.width <= secondSize.width && firstSize.height <= secondSize.height &&
firstSize.width*firstSize.height < secondSize.width*secondSize.height)
をAppleことで、あなたが使用することができ平等のためCGSizeEqualToSize機能を確認するには。最初のパラメータでCGSizeの矩形内または第二パラメータにCGSizeの矩形の範囲に完全に収まる場合
CGSize firstSize = CGSizeMake(1.0,1.0);
CGSize secondSize = CGSizeMake(5.0,3.0);
if(CGSizeEqualToSize(firstSize, secondSize)) {
//they are equal
}else{
//they aren't equal
}
Dvir質問に記載されているように「小さいか等しい」を探している。 'CGSizeEqualToSize()'がfalseを返す場合、我々はまだそれが大きいか小さいか分からない。 – Anne
次の関数が決定します。
- (BOOL)size:(CGSize)smallerSize isSmallerThanOrEqualToSize:(CGSize)largerSize {
return CGRectContainsRect(
CGRectMake(0.0f, 0.0f, largerSize.width, largerSize.height),
CGRectMake(0.0f, 0.0f, smallerSize.width, smallerSize.height)
);
}
代わりの条件文を読むことは困難との完全なロジックを自分で書いて、あなたは、名前、記述されている組み込みの、インラインヘルパー関数を使用することができます。
私は研究をしていませんが、2つのCGSizeを2つのCGRects C構造体に変換するので、この方法はおそらく受け入れられた答えより実行が遅くなります。それは読者が理解するのが早いという利点がありますが。
Swift 4.0 on CGSize
のかなりまっすぐな前方拡張。 OPの状態として、これはあなたが面積ではなく寸法に関係していることを前提としています。
import UIKit
extension CGSize {
func isGreaterOrEqual(to size: CGSize) -> Bool {
return width >= size.width &&
height >= size.height
}
}
その後、次の値でそれをテストすることができます。
let size = CGSize(width: 100, height: 100)
let smaller = CGSize(width: 80, height: 80)
let bigger = CGSize(width: 120, height: 120)
let small = size.isGreaterOrEqual(to: smaller) // true
let big = size.isGreaterOrEqual(to: bigger) // false
let same = size.isGreaterOrEqual(to: size) // true
それはあなたが「小さい」をどう定義するかに依存します。あなたは2つの次元を持っているので、どちらも小さくなければなりませんか?それとも高さだけ?ちょうど幅ですか?または、定義された四角形の領域ですか? – lnafziger
小さい方は少なくとも1次元は小さく、2次元目は大きくない(等しくてもよい)。 –
さて、総面積は関係ありませんか? 1つのボックスが100x100でもう1つのボックスが101x25の場合は、定義によって大きくなります。 – lnafziger