2017-05-09 34 views
0

我正在使用Shinobi Data Grid,但我遇到了一个小问题,因为有关Shinobi Grid的Swift示例或问题很难找到。下面我的代码片段:Swift: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)) 

      } 
    } 

我想我的手机显示的内容(包装内容)里面的全文不是截断文本......。

我读this但我没有想法与该块,因为它的目标C:

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

的任何建议和答案将帮助我。在此先感谢

回答

0

我做this的函数库,下面的代码:

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) 

} 

和数据源prepareCellForDisplay成了这个样子:

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