2017-05-09 4 views
0

Ich arbeite mit Shinobi Data Grid, aber ich bekomme ein kleines Problem, weil das Swift Beispiel oder die Frage über Shinobi Grid sehr schwer zu finden ist. Im Folgenden meines Snippet-Code:Swift: Auto Text in Shinobi Grid

var grid: ShinobiDataGrid? 

    grid = ShinobiDataGrid(frame: self.view.bounds) 
    grid?.frame = CGRect(x: 0, y: 120, width: (screenWidth), height: 600) 

    theme = SDataGridTheme() 
    theme?.iOS7Arrows = true 
    theme?.hideVerticalGridlines = false 
    grid?.apply(theme) 

    self.view.addSubview(grid!) 
    ......... 

    addColumn(grid!, title: "Floor", width: 100, alignment: .right, alignmentHeader: .right) 

    grid?.numberOfFrozenColumns = 2 
    grid?.layer.borderWidth = 1 

    grid?.defaultCellStyleForHeaderRow.backgroundColor = UIColor(hex: "#1A237E") 
    grid?.defaultCellStyleForHeaderRow.textColor = UIColor.white 
    grid?.defaultCellStyleForHeaderRow.font.withSize(5) 

    grid?.dataSource = self 
    grid?.delegate = self 
    ........ 

    func shinobiDataGrid(_ grid: ShinobiDataGrid!, prepareCellForDisplay cell: SDataGridCell!) { 
    let textCell = cell as! SDataGridTextCell 

    //  let textCell = cell as! SDataGridMultiLineTextCell 
    var dataRow: [AnyHashable: Any]? 

    dataRow = filteredDataRoomingList?[cell.coordinate.row.rowIndex] as? [AnyHashable: Any] 

    textCell.sizeToFit() 

    if (searchBarActive) { 
     dataRow = filteredSearchDataRoomingList?[cell.coordinate.row.rowIndex] as? [AnyHashable: Any] 
    } 
    else { 
     dataRow = filteredDataRoomingList?[cell.coordinate.row.rowIndex] as? [AnyHashable: Any] 
    } 

    if textCell.coordinate.column.tag == 0 { 
     textCell.textField.text = (String(dataRow?["floor"] as! Int)) 
    //   gridMultiLine.textLabel.text = (String(dataRow?["floor"] as! Int)) 

      } 
    } 

mag ich meine Zelle den vollständigen Text in seinem Inhalt (wrap Inhalt) zeigt den Text nicht mit .... gestutzt.

las ich this aber ich nicht mit diesem Block hat Idee, weil seine in Objective C:

SDataGridColumn *nameColumn = [[SDataGridColumn alloc] initWithTitle:@"Forename" cellType:[SDataGridMultiLineTextCell class]]; 
nameColumn.editable = YES; 
nameColumn.width = @250; 
[self.shinobiDataGrid addColumn:nameColumn]; 

Jede vorschlagen und Antwort wird mir helfen. Vielen Dank im Voraus

Antwort

0

ich eine Funktion Basis des this machen, unter dem Code:

func addColoumn(_ grid: ShinobiDataGrid, title: String, width: CGFloat, tag: Int, alignment: NSTextAlignment) { 

    let screenSize = UIScreen.main.bounds 
    let screenWidthInt = screenSize.width - CGFloat(arc4random_uniform(UInt32(screenSize.width))) 

    let column = SDataGridColumn(title: title, cellType: SDataGridMultiLineTextCell.self) 
    column?.width = (Int(screenWidthInt/width) as NSNumber) /*width as NSNumber!*/ 
    column?.tag = tag 
    column?.cellStyle.textAlignment = alignment 
    column?.headerCellStyle.textAlignment = alignment 

    grid.addColumn(column) 

} 

Und Datasource prepareCellForDisplay wurde wie folgt aus:

func shinobiDataGrid(_ grid: ShinobiDataGrid!, prepareCellForDisplay cell: SDataGridCell!) { 
    let dataCell = cell as! SDataGridMultiLineTextCell 
    if cell.coordinate.column.tag == 0 { 

     dataCell.sizeToFit() 
     dataCell.textLabel.text = "msadimfodvnuonvosvndvdivndlvsndvmvnlcvnoidn odnosdvk odkmvosdk sodimdokvs kmdsdokv " 

    } 
    if cell.coordinate.column.tag == 1 { 

     dataCell.sizeToFit() 
     dataCell.textLabel.text = "msadimfodvnuonvosvndvdivndlvsndvmvnlcvnoidn odnosdvk odkmvosdk sodimdokvs kmdsdokv sdmfdfkm sdlfkdmlf dosfod domdso os " 

    } 
} 

enter image description here