Ich versuche, eine dünne, farbige Grenze zu einem @IBDesignable UICollectionViewCell
Prototyp hinzuzufügen. Im Storyboard habe ich die benutzerdefinierten Eigenschaften layer.cornerRadius
, layer.masksToBounds
und layer.borderWidth
festgelegt, und der Rahmen wird wie erwartet angezeigt.UICollectionViewCell Grenze verschwindet, wenn layer.borderColor gesetzt ist
Allerdings, wenn ich gesetzt auch einen benutzerdefinierten layer.borderColor
, die gesamte Grenze, Radius, und die Maske aus dem Storyboard verschwinden. Im Simulator erscheint der Eckenradius (und vermutlich die Maske), der Rand jedoch nicht.
Ich habe auch versucht, sie programmatisch, sondern als this year-old, unanswered StackOverflow question zeigt Einstellung, das entweder nicht funktioniert.
Hier ist der Code für die Zelle, wie gewünscht:
@IBDesignable open class ReleaseSpineCell: UICollectionViewCell {
public var masterRelease: MasterRelease? {
didSet {
artistName = masterRelease?.artistName
title = masterRelease?.title
catalogNumber = "none"
}
}
@IBInspectable public var artistName: String? {
didSet {
artistLabel?.text = artistName
}
}
@IBInspectable public var title: String? {
didSet {
titleLabel?.text = title
}
}
@IBInspectable public var catalogNumber: String? {
didSet {
catalogLabel?.text = catalogNumber
}
}
@IBOutlet private weak var artistLabel: UILabel?
@IBOutlet private weak var titleLabel: UILabel?
@IBOutlet private weak var catalogLabel: UILabel?
}
Und der relevante Teil des UICollectionViewController
‚s dataSource
:
class CollectionModel: FetchedResultsCollectionModel {
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "spineCell", for: indexPath) as! ReleaseSpineCell
cell.masterRelease = fetchedResultsController?.fetchedObjects?[indexPath.row] as? MasterRelease
return cell
}
}
FetchedResultsCollectionModel
ist eine Quelle Ansicht Daten benutzerdefinierte Sammlung und Delegaten, ist unterstützt durch eine NSFetchedResultsController
und MasterRelease
ist das verwaltete Objekt. Ich versuche, dieses Zeug so einfach wie möglich zu halten.
können Sie Ihren Code für die benutzerdefinierte Zelle posten? –
Sicher, aber es ist nur eine Handvoll 'IBOutlet's; kein interessanter Code. – NRitH