2009-12-19 19 views
0

目前我在IB UIView中有52張牌UIImageViews。在UIView中拖動52張卡片中的1張。哪種方法更好?

我的目標是將這52張牌中的一張卡拉進廣場,如果卡被扔進廣場,它會留在那裏。否則,它會回覆原來的位置。

我的問題是哪個方法更好?

  1. 創建一個自定義類NSObject的和IB每卡改變這個類,並在.m文件使用此代碼。 (無效)touchesMoved:(NSSet *)與事件觸發:(UIEvent *)事件UITouch * touch = [touches anyObject];
    CGPoint location = [touch locationInView:self.superview];

    self.center = location; }

  2. 聲明52個IBOutlets,讓他們在同一動作

    我)子公司回答這個問題:有沒有一種方法,我不需要申報的所有52個IBOutlets? ` 提前謝謝!

回答

0

最終,我選擇做自定義視圖,因爲我覺得它會少些凌亂的UIView子類,因爲有在那裏已經有很多代碼...它是我個人的選擇,但我真的想知道我是否應該做其他事情,或者更優雅的選擇......也許從內存方面或覆蓋方面

+0

你需要爲你的卡添加子視圖,例如[self.view addSubview:card];在那裏卡是相同的UI類型,你想在IBOutlet,它會給你相同的功能 – 2009-12-19 11:50:56

+0

問題是,我需要安排在正常秩序的卡..所以我不能簡單地添加子視圖。 這些卡被排列成每一套西裝的4排.... – zerlphr 2009-12-19 16:53:55

0

這將是最好的通過for loop添加的卡每張卡的標籤編程設置,比如x + 1到x + 52,使他們同樣的動作,並在檢查幀響應爲匹配框架你的卡在-(void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event { UITouch *touch = [touches anyObject];這是有點棘手,但需要少得多的努力,事情將更加可操作。

希望這會給你一個不錯的主意

+0

非常感謝你!但是如何使用for循環添加IBOutlet? – zerlphr 2009-12-19 11:19:36

相關問題