My first thought was also to a single view. But a table view or collection view might give you everything you need. Then you can focus on the model objects.
Sent from my iPhone On Jul 24, 2016, at 8:08 PM, Alex Hall < email@hidden> wrote: On Jul 24, 2016, at 07:00, Roland King < email@hidden> wrote:
On 24 Jul 2016, at 18:42, Alex Hall <email@hidden> wrote:
I'm making a game based on a board. Every square on the board will be a UIButton so users can tap it. I know the size of the board (2x6) but in similar projects I may not--that is, the board size may be set by a user preference. In either case, I don't look forward to making a bunch of individual IBOutlets, and wonder if there might be a better way. Plus, with an arbitrarily-sized board, I couldn't make and wire up the outlets.
In such a situation, how would I do this? I'll need each button to respond to a single tap, tap and hold, and double tap.
I wouldn’t use UIButtons at all for this. I’ll start by assuming you’re talking about one tap at a time, ie that you don’t need to be able to tap more than one cell simultaneously.
Correct.
You finish one gesture then start another.
So make your board a UIView, the whole thing, one view, and attach one single, one double and one long press gesture recogniser to it, and configure them appropriately so they allow each other to run or not, depending on how your game works.
Then all you have to do when you have a gesture which is recognised is to take the coordinates of the gesture, and work out which virtual ‘cell’ that represents on your board. This is totally scalable from 1x1 cells to however many x however many, the board dimensions are just a property of your custom view. You can easily draw your own highlight as the cell is tapped and make it look like a button, or probably better look not like a button but like a cell in your game being tapped.
That sounds like a really good idea. Here's the only problem: VoiceOver support. If I have no physical objects, how could VO users navigate the board? My first thought is to simulate everything, by using a directInput view and then adding gesture recognizers for all the VO gestures I want to support. Actually, this method has a couple of advantages, like supporting swiping up or down to move by row, whereas normal UIButtons would have the user swiping left/right a ton of times. But is there another way I'm missing? The more I think about this, the more I like it! As you said, scalable, far easier to manage, and cleaner. Just make sure your cell to coordinates and coordinates back to cell logic is in one place so the drawing and gameplay are using the same transformation as the gesture recognisers.
This'll take some research on my part, but I think I can get it working. Thanks for the suggestion!
--
Have a great day, Alex Hall
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
|