How to create a iOS 13 Contacts App like design using UITableView? - ios

The native iOS Contacts App offers quite nice editing features:
A stretchy header both in view and edit mode.
Different row and header layout in view/edit mode
Animations between the two modes
How to recreate this design in my own app using UITableView?
I know the basics of UITableView designs using its different delegate and data source methods. But there are several features where I do not know how to implement them:
Question 1:
How to toggle between view and edit mode using a completely different layout?
The edit mode uses a completely different layout than the view mode: More / different rows and section. Some controls disappear, others come into view.
Of course I know that a table view can toggle between view/edit mode, but can the transition used by the contacts app really be implemented using UITableView methods only or does this need transition between to completely different views?
Question 2:
How to create the stretchy header with the image/logo which shrinks into the navigation bar?
I found several other topics and tutorials about the contatcs app layout. However, most of them are several years old and since a lot has changed in iOS the offered solution are pretty outdated.

Related

Grouped UITableView in NativeScript-Vue

How do I create a grouped table using a UITableView in NativeScript-vue, so that it might look like the iOS settings app, or this screenshot from the apple developer documentation. I need to support having switches in the table cells. I want to create this style using as many native styles as possible and also be compatible with android. I have tried applying NativeScript UI classes to Labels in a StackLayout with no success.
Sectioned list view is a iOS specific feature and there is a plugin. But if you like a cross platform solution, create 2 templates and style one like section header and another with simple labels / switches etc.,

universal ios app iPad and iPhone architecture

I'm creating a universal iOS app.
I have a different UI for each one of them in most of the screens.
There are about 15 screens.
I'm coming from Android and trying to find the best solution for that.
on the iPhone i use portrait mode.
on the iPad i use landscape mode.
I use Constraints / Auto layout.
Some of the views have nibs, some in code.
because of that, the logic is a bit different in each one.
iPad have 2 menus you can swipe from top to bottom and left to right.
iPhone has no draggable menus.
both use same Api calls to the server.
I looked a bit on stack overflow, and got some of those methods:
Should I use 2 different classes, and 2 nibs?
Or maybe 1 class with tons of if else?
Use different targets?
Is one of those is the best way? Is there any other way?
different targets
same class with if/else
IPAD::
IPHONE::
When I need to design a universal app I look at the interface I think I need to support and try:
Can the different layouts be handled by autolayout constraints? If so great, I only need one view.
If the views are significantly different can I define a common IBOutlet/Action interface to a view controller? If so I can use one view controller (which is not full of conditional branches) to support views defined in multiple nibs.
If the view structure is radically different or the presented view controllers vary greatly (split view controllers for example) then I probably need multiple view controllers, each with their own views/nibs but those controllers should be as thin as possible and share a common set of models, data sources, networking services, and other business logic.

creating a view that resembles the apple app store

So I'm creating an app at the moment and one of my views has a design that resembles the Apple app store where there are multiple icons in sections that are scrollable horizontally as well as being able to scroll vertically through the sections (Categories). Anyone with an iPhone can simply open the app store application on the device and view the featured tab to understand what I'm trying to achieve.
My question is how to achieve the design in the app store. Im assuming its a combination of multiple components such as a table view/collection view, scroll view and image views.
I don't believe there are any duplicates to this question from my research, but as always I stand corrected. Any insights or direction would be great.

iOS 7 Transition - XCode 5 - Interface Builder - Three20

I've currently an App (with a lot of View Controllers, ...) what uses the "discontinued" Facebook three20 Library and any storyboard, xib file.
Now I need to update this App, the Deployment Target will be iOS 7 and I have to build it with XCode 5.
So my questions:
Is using the Storyboard a good Idea? Would you suggest me to recreate all View Controllers in the Interface Builder?
--
Another question: when adding a Label Programmatically using iOS 7 feature
self.edgesForExtendedLayout = UIRectEdgeAll;
how do I set the Frame for this Element? Need I determine if I am in Landscape, Portrait and Add the 20+44 for example manually to the y-Axis to start under the NavBar or are there better ways to solve this problem?
Storyboards are good, and you should absolutely use them in any future app you make. Whether or not you should rebuild a current app to use storyboards is a question of how big the app currently is, how much bigger it might get, how much longer you'll support it, etc.
If the app is already pretty massive and it won't necessarily grow much at all from here, it's probably not worth the effort to convert over to storyboards.
If the app is only a handful of view controllers, but you have big future plans for it, I'd take the time to convert it over to storyboards so that all the future development will go faster/easier.
I don't deny storyboards but I respect the custom view approach. It means I am creating my each & every component programmatically via code, be it a UILabel or a UITableView. Aligning code with ios7 specific requirements can also be handelled & controlled at granular level using custom View approach.
To your questions about setting frames for the element or detecting device orientation can very well be detected & adopted by writing code.
You can search more help as the information is available all around on programming aspects of iOS.

Trying to wrap my head around Monotouch, storyboards and iPad split view apps?

Since about two weeks I've been trying to get a hang of MonoTouch. My objective is to develop a simple iPad application using the master/detail split view template, as provided by the Xcode interface / storyboard builder.
Although I've learned quite a lot, I just can't wrap my head around getting the split view to work. I'm able to "draw" the interface but then I get stuck.
I've worked though numerous online examples (mainly Objective-C based ones, as there are little MonoTouch based examples available). Many tutorials are old (based on Interface Builder and Xcode 3) and many seem to do random parts of the interface creation in code. For a newbie (not to programming, just to iOS development) it's quite a hard to thing to get a grasp on.
My objective is to make a simple app with the split view controller; in the master I want like 5 (static) cells. Tapping on a cell will give me the contents of a specific view controller (on the detail view). And that's it. Nothing more. I'm aware of MT.dialog, but I prefer to make use of native iOS stuff.
Any clues would be awesome.. tutorials, books, example apps.. whatever.
Thanks.
As far as learning how to use Storyboards, I would recommend using this tutorial provided on the Xamarin MonoTouch Documents website: Introduction to Storyboards
When working with your cells, you are going to want to populate the UITableView with cells using a subclassed UITableViewSource class that you will override various methods to provide implementation with (Such as GetCell, RowSelected, HeightForRow, etc). When each cell is tapped, you will want to use the RowSelected() method of UITableViewSource class that you have subclassed. You will then want to figure out exactly which string was selected, pass this to your detail view's constructor, and decide how to display the detail screen from that data!
There are plenty of examples of this attached to the Working with Tables and Cells document on the Xamarin website (and they do a much better job explaining the process)!

Resources