UITableViewController
섹션 이있는 하위 클래스가 있습니다. 섹션은 기본 스타일 (둥근 모서리 없음)로 표시됩니다. TableView 스타일을 코드에서 그룹화하려면 어떻게해야합니까? 이를 위해 Interface Builder를 사용하지 않으므로 다음과 같은 것이 필요합니다.
[self.tableView setGroupedStyle]
Stack Overflow에서 검색했지만 답변을 얻지 못했습니다.
답변:
무슨 뜻인지 이해한다면 그 스타일로 컨트롤러를 초기화해야합니다. 다음과 같은 것 :
myTVContoller = [[UITableViewController alloc] initWithStyle:UITableViewStyleGrouped];
다음을 수행 할 수 있습니다.
UITableView *myTable = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
스위프트 3 :
let tableView = UITableView.init(frame: CGRect.zero, style: .grouped)
UITableView
이고 허용되는 대답은 UITableViewController
.
CGRectZero
뷰 스타일과 함께 프레임으로 초기화 한 다음 제약 조건을 추가하면 제약 조건과 함께 올바른 스타일을 얻을 수 있습니다.
내 솔루션을 제공합니다. "XIB 모드"에서 작업하고 있습니다. 여기에는 UITableViewController의 하위 클래스 코드가 있습니다.
-(id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithStyle:UITableViewStyleGrouped];
return self;
}
아래 코드는 나를 위해 일했으며 UITableview 클래스도 사용하고 있습니다.
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:UITableViewStyleGrouped];
if (self)
{
}
return self;
}
스위프트 4
일반 TableView 사용
let tableView = TableView(frame: .zero, style: .grouped)
TPKeyboardAvoidingTableView 사용
let tableView = TPKeyboardAvoidingTableView(frame: .zero, style: .grouped)
별도의 신속한 파일로 이미 만든 하위 클래스에서 사용하려는 경우에도이 작업을 수행 할 수 있습니다 (아마 100 % 정확하지는 않지만 작동 함).
override init(style: UITableViewStyle) {
super.init(style: style)
UITableViewStyle.Grouped
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
이제 appdelegate.swift에서 다음을 호출 할 수 있습니다.
let settingsController = SettingsViewController(style: .Grouped)
스위프트 4
스토리 보드를 사용하지 않으려면 도움이 될 수 있습니다.
클로저에서 테이블 뷰를 추가하고 속성을 설정할 수 있습니다.
lazy var tableView: UITableView = {
let tableView = UITableView(frame: .zero, style: .grouped)
tableView.backgroundColor = UIColor(named: Palette.secondaryLight.rawValue)
tableView.rowHeight = 68
tableView.separatorStyle = .none
tableView.translatesAutoresizingMaskIntoConstraints = false
return tableView
}()
그런 다음 하위보기를 추가하고 제약 조건을 설정하십시오.
그룹화 된 스타일 효과를 줄 수있는 구분선 색상을 명확하게 만들 수도 있습니다.
[myTVContoller.tableView setSeparatorColor:[UIColor clearColor]];
self.tableView.style = UITableViewStyleGrouped
편집하다:
이것이 읽기 / 쓰기 속성이라고 가정했습니다. 이 경우 컨트롤러를 인스턴스화 할 때 Dimitris의 조언에 따라 스타일을 설정하거나 (XIB를 사용하는 경우) IB를 통해 설정할 수 있습니다.