The easiest way to achieve multiple columns like Spreadsheet Tables in Swift. If you're looking without a third party library, that's great.
BASReport create a table like custom layout for a collection view using horizontal and vertical scrolling with sticky rows and columns written in Swift programming .
Please visit the demo BASReport spreadsheet,The main part is the BASReport folder in the demo files.
Project Files
- Manually include BASReport folder files to your project.
Storyboard
- Go to main.storyboard and add a blank UIView
- Open the Identity Inspector and type 'BASCustomReport' the 'class' field
- Make sure you have 'Spreadsheet' selected in 'Module' field
Minimum working example:
import UIKit class ViewController: UIViewController { //Outlets @IBOutlet weak var basReport: BASCustomReport! //Variables var sampleData = [SampleData]() override func viewDidLoad() { super.viewDidLoad() self.title = "Weekly Time Table For Every Hour" initialSetup() } func initialSetup() { var HeaderDict = OrderedDictionary<String, Bool>() HeaderDict["PERIOD"] = false ; HeaderDict["MONDAY"] = false ;HeaderDict["TUESDAY"] = false ;HeaderDict["WEDNSDAY"] = false ;HeaderDict["THURSDAY"] = false; HeaderDict["FRIDAY"] = false;HeaderDict["SATURDAY"] = false;HeaderDict["SUNDAY"] = false self.basReport.arrGHeader = HeaderDict setData() } func setData() { if let path = Bundle.main.path(forResource: "Example", ofType: "json") { do { let data = try Data(contentsOf: URL(fileURLWithPath: path), options: .mappedIfSafe) let tempData = try JSONDecoder().decode(RootClass.self, from: data ) self.sampleData = tempData.data! self.basReport.arrGKeys = [("PERIOD", .left,nil, nil) , ("MONDAY",.center,90.0 , nil) , ("TUESDAY",.center,90.0 , nil) , ("WEDNSDAY",.center,100.0 , nil) , ("THURSDAY",.center,90.0 , nil) , ("FRIDAY",.center,90.0 , nil) , ("SATURDAY",.center,90.0 , nil),("SUNDAY",.center,90.0 , nil) ] if basReport.arrGHeader.count == basReport.arrGKeys.count{ self.basReport.arrReportSummaryDict = arryToDict(array: self.sampleData) } } catch { // handle error } } } }
HAPPY LEARNING!
Similar Xcode tutorial, swift tutorial solutions you may also like...
1 Comments
Your tutorial solved my problem. I was stuck for a long time. thanks you..
ReplyDelete