Is it possible to customize the position of groups in a UITableViewController? For example, drawing the groups horizontally or customize the space inside two groups.
Thanks.
If you are targeting iOS 6+, UICollectionView implements the features you are looking for. It can do a horizontal layout out of the box and UICollectionViewLayout allows you to customize everything about the display and positioning of items. If targeting iOS 4.3+, there is a third-party implementation of it called PSTCollectionView.
The UICollectionView class manages an ordered collection of data items and presents them using customizable layouts. Collection views provide the same general function as table views except that a collection view is able to support more than just single-column layouts. Collection views support customizable layouts that can be used to implement multi-column grids, tiled layouts, circular layouts, and many more. You can even change the layout of a collection view dynamically if you want.
Related
I would like to create a timeline in swift, like a timeline in classical music software.
What's the container (Collection Views, TableView, Scroll view etc..) looks like to best to design this?
NSCollectionView gives you the greatest flexibility for designing this, with the background cells rendered as supplementary views.
I'm building a macOS app that requires a scrollable (and ideally, drag and reorderable) list of check box buttons. These buttons are going to be loaded in from a .plist file, so I need some control to load them into.
I'm really a c# programmer, and would just use a stackpanel or dockpanel or something of the like. Is there an equivalent in swift? Or do I need to write a custom control?
I have tried using various types of table views with check box cells, as well as rule views and other scrolling type views.
Edit:
Sorry, I should have linked to NSCollectionView and NSStackView for MacOS — it's obviously not part of UIKit. :)
//
Check out UICollectionView. Similar to UITableView (data source, delegate, UIScrollView subclass), but more flexible on how the layout looks and acts. It also supports reordering.
You could also use a UIStackView, but you would have to put it in a UIScrollView yourself and it doesn't easily support reordering.
What's the difference between a UIHorizontalStackView and a Collection View(Also Vertical stackview)?
Can't a collectionView be horizontal and vertical? Why would people use both?
What does a UIStackView do that a Collection View can't?
Yes, a collection view using a flow layout or a custom layout can be vertical or horizontal. When using a flow layout it's pretty easy to configure a single column of items which are all set to their intrinsic content size.
The stack view is basically a trim and specialised version of that. It takes away the flexibility of the collection layout and in return gives you a streamlined interface.
Depending on your use case you may not need the complexity of a collection view. There are also some nice little features, like if you had a list of options to display but some aren't appropriate in all cases then you can just hide the ones that aren't and the stack view will deal with it. Hiding items in a collection view requires a good deal more configuration.
Stack views also form a very lightweight option for container views created entirely within interface builder and with no requirement for code. In this way the stack view is replacing a lot of your auto layout constraints by using the intrinsic content sizes of the subviews it manages to flow the layout. You can also very effectively nest stack views to form most tabular type layouts.
Collection views have cells and work with data presentation. Stack views are a way to layout views within a container. Stack views do not have a way to work with the data as collection views do with delegates. Collection view is data centered and stack views are layout focused.
UICollectionView is like a grid, UIStackView is only for 1 dimension: vertical or horizontal.
UICollectionView is like UITableView, but it supports more than single-column layouts.
Collection views provide the same general function as table views
except that a collection view is able to support more than just
single-column layouts. Collection views support customizable layouts
that can be used to implement multi-column grids, tiled layouts,
circular layouts, and many more. You can even change the layout of a
collection view dynamically if you want.
vs
The UIStackView class provides a streamlined interface for laying out
a collection of views in either a column or a row
For me, With StackView, you benefit the "AutoLayout" feature, for example: you put 4 views in the Stack, this component will decide how those views will be presented on the screen, depending on their size.
Collection views are much more complicated UI elements, requiring a DataSource object, and a layout etc.
Stack Views seem to be a replacement for tricks where you had to apply multiple constraints to several elements to do (say) a stack of buttons, or arrange labels and text fields for a form.
Stack Views also don't have a delegate, and have no mechanism for selecting items or anything like that.
If you asking yourself why this 2 options are there, which looks like very similar - sometimes you'll create a custom Cell (tableview or collectionview) and will add a another tableview or a collectionview as a subview - then you will love to know how UIStackView works....
I am attempting to make a custom view that looks like the attached picture. The top two cell would be static while the bottom three would scroll if there are more than the screen can fit, and only scroll within that given area. I am wondering what the best approach is to making these types of custom views. I know how to make custom UItableviewcells and have custom content in them, but I am struggling with an overall strategy to make a custom UITableview that has certain cells be static and others scroll. Should I just implement a table view to be part of the screen in storyboards? Or are there better ways to do so?
I would do this by making the top two "cells" just be UILabels, and the bottom a table view where both the cells and the table view would have a clear background. The table view should be set to have no separators between the cells, and the cells should have a UILabel with a background cooler the same as the top UILabels.
This was the result:
I normally do not like to use story board much. And prefer SubClassing UIView. It might take more time to code at first but in a long run it is easier and very dynamic to control the UI programmatically.
In your problem I would make two static UIView(s). If the two view are similar the advantage of using UIView class is that you can use same class with different data model to generate multiple views. But if you use story board you need to copy past multiple times. Hence try to create UIViews class objects as much as possible.
And then the bottom one will be a simple table view. Do not think there is much you can do in this case. Do submit some codes you have done so that we can better refine it.
Hello I want to create a table view like as following image
There is any library is available. how can create like this.
Check this repository GridTableView. I used the same code to create 10 columns in iPad application. Let me know your thoughts.
I recommend to use UICollectionView and PSTCollectionView
or
You can use the UITableView for this and with your own custom cell which it is not complicated.
Note:
UICollectionView is only Available in iOS 6.0 and later.
The UICollectionView class manages an ordered collection of data items and presents them using customizable layouts. Collection views provide the same general function as table views except that a collection view is able to support more than just single-column layouts. Collection views support customizable layouts that can be used to implement multi-column grids, tiled layouts, circular layouts, and many more. You can even change the layout of a collection view dynamically if you want.