TableView의 Cell 교환에서 View가 투과된 당신에게
5800 단어 UITableViewSwiftiOS
침목
iOS 응용 프로그램 하면 UITableView 입니다.그렇게 지도 모른다, 아마, 아마...
이번에는 UITableView의 작은 단락입니다.
UITableView는 비교적 간단한 설정으로 셀을 교환합니다.extension TableWorkViewController: UITableViewDataSource {
// ...省略...
// 移動可能
func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool {
return true
}
// 移動実行
func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath) {
print("source: \(sourceIndexPath)")
print("dest: \(destinationIndexPath)")
}
}
이런 느낌으로 설정, 어디self.tableView.isEditing = true
하면, 만약, 만약...
이런 느낌으로 교환 아이콘을 표시합니다.
기본적인 것은 이렇다.간단하다.
그럼 실제로 바꿔보세요.
눈치채셨습니까?
셀 위에 UIView
놓여 있지만 보이지 않습니다.
교체할 때 단원에 앉는 것이 투명한 것 같다.
징그러우니 대책을 생각해 보자.
호스트
그래서 본론.
자신도 소박하게 빠져들었지만 좋은 파워 기술로 해결한 사람이 있어서 따라하게 됐어요.
참조:
https://medium.com/@vhart/tableview-cell-reordering-keep-the-color-4c03623d2399
최고!이 파워 센스!
원소재를 보면 알 수 있듯이 이동할 때UIView
의UIView
는 투명하게 설정되므로 강제로 색을 유지해야 한다.
그래서 만든 게 여기 있어요./// セルの入れ替え時に色をのキープしておくためのView
class TableWorkColorKeepView: UIView {
/// キープ用のbackgroundColor
@IBInspectable var keepBackgroundColor: UIColor = .clear {
didSet {
self.backgroundColor = self.keepBackgroundColor
}
}
/// 背景色
override var backgroundColor: UIColor? {
set {
// キープしている色と異なればリターン
guard newValue == keepBackgroundColor else {
return
}
super.backgroundColor = newValue
}
get {
return super.backgroundColor
}
}
}
이걸 사용하면...
그렇습니다.
유지용 색상을 준비했는데 배경색이 변경되었을 때 그 색상과 다르다면 그냥 무시했을 뿐입니다.
배경색을 설정하고 싶은 경우backgroundColor
의 사람이 설정한 느낌.
(Storyboard로 초기 값을 설정하고 싶어서keepBackgroundColor
마지막
파워 스킬이니 사용법에 주의하세요.
더 똑똑한 방법이 있으면 알려주세요.
Reference
이 문제에 관하여(TableView의 Cell 교환에서 View가 투과된 당신에게), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/M9tec/items/281b614bb0ac755d843c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
extension TableWorkViewController: UITableViewDataSource {
// ...省略...
// 移動可能
func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool {
return true
}
// 移動実行
func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath) {
print("source: \(sourceIndexPath)")
print("dest: \(destinationIndexPath)")
}
}
self.tableView.isEditing = true
그래서 본론.
자신도 소박하게 빠져들었지만 좋은 파워 기술로 해결한 사람이 있어서 따라하게 됐어요.
참조:
https://medium.com/@vhart/tableview-cell-reordering-keep-the-color-4c03623d2399
최고!이 파워 센스!
원소재를 보면 알 수 있듯이 이동할 때
UIView
의UIView
는 투명하게 설정되므로 강제로 색을 유지해야 한다.그래서 만든 게 여기 있어요.
/// セルの入れ替え時に色をのキープしておくためのView
class TableWorkColorKeepView: UIView {
/// キープ用のbackgroundColor
@IBInspectable var keepBackgroundColor: UIColor = .clear {
didSet {
self.backgroundColor = self.keepBackgroundColor
}
}
/// 背景色
override var backgroundColor: UIColor? {
set {
// キープしている色と異なればリターン
guard newValue == keepBackgroundColor else {
return
}
super.backgroundColor = newValue
}
get {
return super.backgroundColor
}
}
}
이걸 사용하면...그렇습니다.
유지용 색상을 준비했는데 배경색이 변경되었을 때 그 색상과 다르다면 그냥 무시했을 뿐입니다.
배경색을 설정하고 싶은 경우
backgroundColor
의 사람이 설정한 느낌.(Storyboard로 초기 값을 설정하고 싶어서
keepBackgroundColor
마지막
파워 스킬이니 사용법에 주의하세요.
더 똑똑한 방법이 있으면 알려주세요.
Reference
이 문제에 관하여(TableView의 Cell 교환에서 View가 투과된 당신에게), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/M9tec/items/281b614bb0ac755d843c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)