私はボタンでいっぱいの配列を持っています、そして、使用がボタンをクリックするとき、私はそれのために配列を検索したいと思います。
はい、ボタンにタグを付けましたが、別の目的で使用されています。ですから、平等をチェックする別の方法があることを望んでいます。
私はのようなことができることを望んでbutton1.frame.origin == button2.frame.origin
いましたが、コンパイラーはそれを好みません。
私はボタンでいっぱいの配列を持っています、そして、使用がボタンをクリックするとき、私はそれのために配列を検索したいと思います。
はい、ボタンにタグを付けましたが、別の目的で使用されています。ですから、平等をチェックする別の方法があることを望んでいます。
私はのようなことができることを望んでbutton1.frame.origin == button2.frame.origin
いましたが、コンパイラーはそれを好みません。
メソッドを使用できますbool CGRectEqualToRect(CGRect rect1, CGRect rect2)
。ボタンの両方のフレームをパラメーターとしてこのメソッドに渡すだけで、それらが等しいかどうかを示すブール値が返されます。
UIButton
(およびUIView
)はから継承するNSObject
ので、できるはずですisEqual
。
if([button1 isEqual:button2])
{
// do whatever
}
isEqualメソッドが使用しているのと同じように、これらのオブジェクトのアドレス指定されたメモリを比較できます
NSArray *buttons=@[button1,button2,button3,button4];//your array of buttons
UIButton *b = (UIButton *)sender;//button to search
[buttons enumerateObjectsUsingBlock:^(UIButton * button, NSUInteger idx, BOOL *stop) {
if (button==b) {
//do your thing here...
*stop=TRUE;
}
}];