2015-12-24 197 views
1

我嘗試使用下面的代碼,用於設置單元的背景。它工作正常它掩蓋了披露指標。我如何向前拉動披露指示器以使其可見?的UITableView細胞背景

cell.backgroundColor = UIColor.clearColor() 

let imageView = UIImageView(frame: CGRectMake(0, 0, cell.frame.width, cell.frame.height)) 
let image = UIImage(named: "sand background 1.png") 
imageView.image = image 
imageView.alpha = 0.5 
cell.addSubview(imageView) 
cell.sendSubviewToBack(imageView) 
+0

採取看看:HTTP://stackoverflow.com/questions/19064198/ios-7-uitableview -cell-background-view – Shripada

回答

1

當我這樣做,披露顯示罰款。我會親自做insertSubview(atIndex: 0),而不是addSubviewsendSubviewToBack如果我想手動視圖層次結構中手動添加背景圖片視圖。或者,我只需設置單元的backgroundView(和selectedBackgroundView)。但是,對於我來說,所有這些方法都具有可見的披露指標(假設披露指標已啓用)。我運行應用程序,然後使用視圖調試器和仔細檢查視圖層級和確認披露的指標是實實在在地存在着:

enter image description here

您可以再選擇左側面板中的調試導航和選擇「查看UI層次」從按鈕在調試導航器的右上角:

enter image description here

這樣,您就可以確認披露按鈕是真的存在,還是披露指標是根本不可見(例如,它的顏色可能太c失去你的沙色背景來脫穎而出)。


如果問題是附屬視圖的顏色太相似,背景顏色,你可以改變附屬視圖(見https://stackoverflow.com/a/27971576/1271826)。對於某些附件類型(即細節或複選標記),只需更改tableview的tintColor即可更改顏色。如果你想改變披露指示劑的顏色,你可能不得不更換與您自己創建一個公開的圖像,例如附屬視圖:

cell.accessoryView = UIImageView(image: accessoryImage) 

您可以建立這個附屬圖像,並將其添加爲資產添加到您的項目中,或者您可以定義您動態構建的附件圖像。例如,下面是黃色披露的附屬圖像:

lazy var accessoryImage: UIImage = { 
    let rect = CGRect(x: 0, y: 0, width: 10, height: 43.5) 
    let insetRect = CGRectInset(rect, 2, 15) 
    UIGraphicsBeginImageContextWithOptions(rect.size, false, 0) 
    UIColor(red: 1, green: 1, blue: 0, alpha: 1).setStroke() 
    let path = UIBezierPath() 
    path.moveToPoint(CGPoint(x: insetRect.origin.x, y: insetRect.origin.y)) 
    path.addLineToPoint(CGPoint(x: insetRect.origin.x + insetRect.size.width, y: insetRect.size.height/2.0 + insetRect.origin.y)) 
    path.addLineToPoint(CGPoint(x: insetRect.origin.x, y: insetRect.size.height + insetRect.origin.y)) 
    path.lineWidth = 2 
    path.stroke() 
    let image = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 
    return image 
}() 

國債收益率:

enter image description here

+0

感謝羅布,我看了一下,披露指標在那裏。如果我將tableView背景顏色設置爲clearColor,那麼披露指示符是可見的,但透明背景的黑色會流過我設置的圖像。 Storyboard中的tableView和tableCell視圖使用了哪些設置? – user1698875

+0

Howzit再次搶,當你提出的問題是,披露指示劑的顏色太接近沙圖像的基本顏色。如果我將沙圖像的alpha值降低到0.25,則披露指標只是可見的。這是一個可惜的是,不能爲披露指標設定色彩,黑色將在這裏受歡迎! – user1698875

+0

您可以更改表格視圖的'tintColor'。 – Rob