UITableViewCell의 파란색 강조 표시 색상을 변경하는 방법은 무엇입니까?
UITableViewCell
아이디어 의 파란색 강조 / 선택 색상을 변경하는 방법이 궁금합니다 .
여러 가지 방법으로 하이라이트 색상을 변경할 수 있습니다.
셀의 selectionStyle 속성을 변경하십시오. 로 변경하면
UITableViewCellSelectionStyleGray
회색으로 표시됩니다.selectedBackgroundView
속성을 변경하십시오 . 실제로 파란색 그라디언트를 만드는 것은보기입니다. 뷰를 생성하고 원하는 것을 그릴 수 있으며 뷰를 테이블 뷰 셀의 배경으로 사용할 수 있습니다.
Zonble은 이미 훌륭한 답변을 제공했습니다. UIView
선택한 배경보기로 표시되는 테이블 뷰 셀에 a 를 추가하기 위해 짧은 코드 스 니펫을 포함하는 것이 유용 할 수 있다고 생각했습니다 .
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
UIView *selectionColor = [[UIView alloc] init];
selectionColor.backgroundColor = [UIColor colorWithRed:(245/255.0) green:(245/255.0) blue:(245/255.0) alpha:1];
cell.selectedBackgroundView = selectionColor;
- 세포는 나의
UITableViewCell
- UIView를 만들고 RGB 색상 (밝은 회색)을 사용하여 배경색을 설정했습니다.
- 그런 다음 셀
selectedBackgroundView
을UIView
선택한 배경색으로 만든 셀로 설정했습니다.
이것은 나를 위해 잘 작동했습니다. Zonble 팁을 주셔서 감사합니다.
UITableViewCell
세 가지 기본 선택 스타일이 있습니다 :-
- 푸른
- 회색
- 없음
구현은 다음과 같습니다 :-
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *) indexPath {
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
}
앱 전체를 변경하려는 경우 앱 위임에 로직을 추가 할 수 있습니다.
class AppDelegate: UIResponder, UIApplicationDelegate {
//... truncated
func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {
// set up your background color view
let colorView = UIView()
colorView.backgroundColor = UIColor.yellowColor()
// use UITableViewCell.appearance() to configure
// the default appearance of all UITableViewCells in your app
UITableViewCell.appearance().selectedBackgroundView = colorView
return true
}
//... truncated
}
Swift에서 이것을 사용하십시오. cellForRowAtIndexPath
let selectedView = UIView()
selectedView.backgroundColor = .white
cell.selectedBackgroundView = selectedView
선택 색상을 모두 동일하게하려면에서 UITableViewCell
사용하십시오 AppDelegate
.
let selectedView = UIView()
selectedView.backgroundColor = .white
UITableViewCell.appearance().selectedBackgroundView = selectedView
완전성을 위해 : 자신의 하위 클래스를 만든 경우 메소드를 UITableViewCell
구현 - (void)setSelected:(BOOL)selected animated:(BOOL)animated
하고 컨텐츠보기에 추가 한 일부보기의 배경색을 설정할 수 있습니다. (이 경우) 또는 contentView 자체 (자체보기 중 하나에 포함되지 않은 경우)
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
if(selected) {
self.contentView.backgroundColor = UIColor.blueColor;
} else {
self.contentView.backgroundColor = UIColor.whiteColor;
}
}
(소스 코드 DIV의 작은 너비에 맞추기 위해?를 사용하지 않았습니다.)
this approach has two advantages over using selectedBackgroundView, it uses less memory, and slightly less CPU, not that u would even notice unless u display hundreds of cells.
I have to set the selection style to UITableViewCellSelectionStyleDefault
for custom background color to work. If any other style, the custom background color will be ignored. Tested on iOS 8.
The full code for the cell as follows:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"MyCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// This is how you change the background color
cell.selectionStyle = UITableViewCellSelectionStyleDefault;
UIView *bgColorView = [[UIView alloc] init];
bgColorView.backgroundColor = [UIColor redColor];
[cell setSelectedBackgroundView:bgColorView];
return cell;
}
Swift 3.0/4.0
If you have created your own custom cell you can change the selection color on awakeFromNib()
for all of the cells:
override func awakeFromNib() {
super.awakeFromNib()
let colorView = UIView()
colorView.backgroundColor = UIColor.orange.withAlphaComponent(0.4)
self.selectedBackgroundView = colorView
}
@IBDesignable class UIDesignableTableViewCell: UITableViewCell {
@IBInspectable var selectedColor: UIColor = UIColor.clearColor() {
didSet {
selectedBackgroundView = UIView()
selectedBackgroundView?.backgroundColor = selectedColor
}
}
}
In your storyboard, set the class of your UITableViewCell to UIDesignableTableViewCell, on the Attributes inspector, you may change the selected color of your cell to any color.
You can use this for all of your cells. This is how your Attributes inspector will look like.
Based on @user's answer, you can just add this extension anywhere in your app code and have your selection color directly in storyboard editor for every cells of your app :
@IBDesignable extension UITableViewCell {
@IBInspectable var selectedColor: UIColor? {
set {
if let color = newValue {
selectedBackgroundView = UIView()
selectedBackgroundView!.backgroundColor = color
} else {
selectedBackgroundView = nil
}
}
get {
return selectedBackgroundView?.backgroundColor
}
}
}
'development' 카테고리의 다른 글
위도 / 경도 좌표를 일치시키기위한 정규식? (0) | 2020.07.07 |
---|---|
Xcode / 시뮬레이터 : 이전 iOS 버전을 실행하는 방법은 무엇입니까? (0) | 2020.07.07 |
iPhone의 기기 이름은 어떻게 얻습니까 (0) | 2020.07.07 |
Windows에서 원격 / 대상 리포지토리 URL을 어떻게 변경합니까? (0) | 2020.07.07 |
int를 std :: string으로 변환 (0) | 2020.07.07 |