user3746428
user3746428

Reputation: 11175

Creating iOS-like settings screen

I have been researching how I can create a settings screen for my app that looks identical to the iOS settings app however I haven't been able to find an iOS 7/8/Swift version. I have a custom designed settings screen currently, however it just doesn't look professional enough and I would like something that looks more 'iOS'.

Something like this would be perfect: http://jomnius.blogspot.co.uk/2011/04/easy-way-to-create-settings-view.html but obviously this won't work now.

I was hoping someone could recommend a way that allows me to do something similar to this?

Upvotes: 29

Views: 30006

Answers (3)

Jon Schneider
Jon Schneider

Reputation: 26973

Despite the question saying "obviously this won't work now," the project mentioned in that linked blog post, InAppSettingsKit, does still work great and is actively being maintained/updated in 2020.

InAppSettingsKit provides an in-app Settings display that looks and works like the iOS native Settings app. It automatically presents settings from your app's same Settings.bundle resource that the Settings app itself uses. See the linked GitHub project for full details.

(Source: I'm using InAppSettingsKit in http://aggromagnetgames.com/desktop-journey/ and it works fine!)

Upvotes: 0

Rom
Rom

Reputation: 143

The above answer is correct, but I wanted to add the solution itself here to save time for future users.
In order to make a regular UITableView look like the "Settings" page, you only need to to two things:
1. implement tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int and tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? so that the table will have multiple sections with headers.
2. set the table style to .grouped, which can be done via the storyboard editor.

Upvotes: 3

Mike
Mike

Reputation: 717

Like 'Epic Byte' stated above, going with a UITableViewController with grouped style is an approach that ended up working for me. That tip put me down the right path.

Here are some links that helped me get the job done (in my case I also needed this to appear in a tab bar controller):

Note that even though the screenshots appear to be for iOS versions < 8, the mechanics in the storyboard view carry over.

Upvotes: 20

Related Questions