문자열 형식의 이름 (es.luca, marco, giuseppe, ..)이 포함 된 배열이 있습니다. 이 배열은 테이블을 채우는 데 사용됩니다. 테이블을 섹션 (az)으로 나누고 오른쪽 섹션의 배열 이름을 넣을 수 있습니까?섹션으로 나눈 알파벳 테이블 뷰
1
A
답변
4
당신은 키와 첫 번째 문자와 값으로 이름의 배열과 사전 만들기 위해 배열을 반복 할 수 있습니다
var nameDictionary: Dictionary<String, Array<String>> = [:]
for name in nameArray {
var key = name[0].uppercaseString // first letter of the name is the key
if let arrayForLetter = nameDictionary[key] { // if the key already exists
arrayForLetter.append(name) // we update the value
nameDictionary.updateValue(arrayForLetter, forKey: key) // and we pass it to the dictionary
} else { // if the key doesn't already exists in our dictionary
nameDictionary.updateValue([name], forKey: key) // we create an array with the name and add it to the dictionary
}
}
을 스위프트에서을 있음 Obj-C
NSMutableDictionary *nameDictionary = [[NSMutableDictionary alloc] init];
for name in nameArray {
NSString *key = [[name substringToIndex: 1] uppercaseString];
if [nameDictionary objectForKey:key] != nil {
NSMutableArray *tempArray = [nameDictionary objectForKey:key];
[tempArray addObject: name];
[nameDictionary setObject:tempArray forkey:key];
} else {
NSMutableArray *tempArray = [[NSMutableArray alloc] initWithObjects: name, nil];
[nameDictionary setObject:tempArray forkey:key];
}
}
다음에 nameDictionary.count, nameDictionary [key] .count 및 특정 섹션의 행 내용을 nameDictionary [key]로 반환하여 행 수를 사용하여 섹션 수를 얻을 수 있습니다.이 배열은 배열을 반환합니다. 키
편집에 저장된 문자로 시작하는 모든 이름 : Piterwilson 응답으로 전체 답을 가지고 있음을 몇
편집 2 : 추가의 Obj-C 코드
주의 사항 : 필자는 Mac에 없기 때문에 코드에 약간의 오류가있을 수 있지만 원칙은 동일하게 유지됩니다
2
질문은 위임자와 데이터 소스를 사용하여 UITableView를 매우 간단하게 구현 한 것입니다.
실제 설명은 약간 길기 때문에 원하는 내용과 매우 유사한 것을 수행하는 응용 프로그램의 자습서가 있습니다.
http://www.appcoda.com/ios-programming-index-list-uitableview/
+0
그 부분은 제가 필요로하지만 어떻게 알파 화 순서로 배열을 나눌 수 있는지 설명하지 않습니다 A부터 Z까지 –
나는 objective-c 언어를 사용합니다. –
이것은 신속하고 잠시만 기다려주세요. obj-C를 포함하도록 답을 수정하겠습니다 –
코드를 보여줄 수 있습니까? –