Я сделал образец для вас близко к вашему требованию. Посмотрите https://github.com/RajanMaheshwari/CustomTableCell
Я хотел был бы сделать это используя UITableView
. Мой подход будет принимать пользовательскую ячейку и добавить UIView с некоторыми ограничениями слева, справа, вверх и вниз. Также я буду предоставлять один и тот же цвет фона UITableView
, UIView
который является SuperView и вид содержимого ячейки, а также сделать separator
из UITableView
в None
и выбор TableCell в None
так, что пользовательский интерфейс выглядит
Далее после применения каждого ограничения и сделать CustomC ell и сделав IBOutlets, мы перейдем к коду.
Я сделаю все тени и описанием в awakeFromNib
методе пользовательского ячейки
Это будет мой CustomTableViewCell
класс
class CustomTableViewCell: UITableViewCell {
@IBOutlet weak var labelBackgroundView: UIView!
@IBOutlet weak var cellLabel: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
labelBackgroundView.layer.borderWidth = 0.5
labelBackgroundView.layer.borderColor = UIColor.lightGrayColor().CGColor
labelBackgroundView.layer.shadowColor = UIColor.lightGrayColor().CGColor
labelBackgroundView.layer.shadowOpacity = 0.8
labelBackgroundView.layer.shadowRadius = 5.0
labelBackgroundView.layer.shadowOffset = CGSizeMake(0.0, 2.0)
labelBackgroundView.layer.masksToBounds = false;
}
У меня есть два выхода.
Один ярлык, на котором вы будете отображать имя. Другое - внешний вид, который вы хотите отобразить, с некоторыми выделениями и тенью.
ViewController код будет:
class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate {
var array = [String]()
@IBOutlet weak var myTableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
array = ["Wealth","Health","Esteem","Relationship"]
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return array.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("CustomTableViewCell") as! CustomTableViewCell
cell.cellLabel.text = array[indexPath.row]
cell.labelBackgroundView.tag = indexPath.row
cell.labelBackgroundView.userInteractionEnabled = true
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(cellViewTapped))
cell.labelBackgroundView.addGestureRecognizer(tapGesture)
return cell
}
func cellViewTapped(sender:UITapGestureRecognizer) {
let view = sender.view
let index = view?.tag
print(index!)
}
}
Здесь я не использовал didSelectIndex
из UITableViewDelegate
, как я хочу только кран на Излагая LabelBackgroundView, а не на полной клетке.
Таким образом, окончательный результат, как этот
Это прекрасно! Я был близок так близко ... Я использовал ярлык внутри контейнера в пользовательской ячейке ... все, что я видел раньше, было белым пространством поверх того, что было разработано ... В любом случае это сработало для меня после того, как я удалил весь мой раскадровки и класс, и начались с нуля! большое спасибо! – Agustin
Если это работает, вы любезно принимаете как тик. Спасибо –
мой плохой ... думал, что я сделал раньше ... там сделано! :) Еще раз спасибо – Agustin