iPhone Developer Diary: GUI In today's entry is about the development of user interfaces. It should be no step-by-step instructions, but rather to the processes and pitfalls are discussed. iPhone With no experience with the subject should be
Human worked through Interface Guidelines and learned as an entry point so that an understanding is created for the views of Apple on the user guide, the arrangement and appearance of elements and the general design of the different types of applications.
Will comply with the conventions is to ensure that every iPhone owners get along without incorporation of any developed App. On the one hand, this is a nice effect, on the other hand, are exactly equal to this many applications running and look alike, that the individuality is a little on the track.
Because of the created mockups I had a good overview of each page of the application and was directly related to the design in the interface builder - start - the graphical view creation tool from Apple. This worked initially, without difficulty, the elements could be arranged using drag & drop on the individual views and equipped with features.
The initial design did, therefore, already very considerable and could be tested directly in the simulator. The look and feel of the application was therefore very fast.
After each page was completed and linked with the appropriate navigation controller, it was to depend on a command to fill a table with specific values
Problem 1. Not the keyboard works again by itself. Simple solution: a method must be implemented ( searchBarTextDidEndEditing ) in the control of the keyboard is returned to the parent controller
Problem 2. The table was not updated, ie it was always empty.
After checking all connections in the interface builder, debugging the table methods and the certainty that the value is written to the array, which should be represented with the help of the table was clear that a not so easy to solve problem.
I think the code was correct, the error had to in the interface builder or in my use of the selfsame be found. After reviewing the settings made by me once I was back at a loss. After several Google sessions, I was not smart, so I have started to change a few settings interface builder. Results: The project is no longer running. The absolute shocker was the fact that the project still was not running after all I Change was reversed. Even when I had old versions of source files restored, did not run the project. Somehow I had shot playing around with the interface builder, the entire project. So all over again. After
had improved even in this iteration nothing, that is, the data was still not shown in the table, I pulled the emergency brake, the interface builder put in the corner and create the relevant View programmatically. This was of course more complex than zusammenzuklicken the UI, fortunately, I was rewarded directly with an executable version of the app. Unsatisfactory, since I did not get out, what went wrong in the interface builder, but overall I was happy that it could go forward. The same game has also again repeated with the detail page, only that I am as the first failed attempt swirled directly on the programmatic version.
arrived at the table display, there are also other, minor issues:
- The editing of each line: For this purpose, three other methods are implemented, with the help of the table to be edited, and set not editable. Furthermore, another method must be implemented in which care is to delete itself.
- The appearance of the individual table cells: By default, a table cell consists of three attributes: Left: image, middle: single-line text, right: counter plus icon for further navigation. It took, however, two lines of text. This requires that the general appearance of the cells in the method cellForRowAtIndexPath be configured programmatically.
- display the cell selection: By default, stored in the selected table cell has a color, this deposit is not removed automatically, which resulted in my prototype to ensure that the selected cell was selected all the time. For this problem there is also a method: deselectRowAtIndexPath.
Overall, the initial creation of the UI easily and quickly went out of hand, unfortunately, it came directly from the content, which is somewhat deviated from the normal difficulties, so I have spent much time with the programmatic implementation of the elements. I was also previously used by graphic editors that source code and variables to graphically created elements are created. This is so not in XCode. The variables and the connection with the graphic elements are to be made manually.
The creation of the UI was fun and with a little practice and experience can be by using XCode and Interface Builder easily develop the apps.