このためのカスタム ヘッダー ビューを作成しようとしていUITableView
ますが、透明にしたいと考えています。
私のコード...
インターフェース...
typedef void(^ActionBlock)();
@interface MyViewHeaderView : UITableViewHeaderFooterView
@property (nonatomic, strong) UIImageView *flagImageView;
@property (nonatomic, strong) UILabel *leagueNameLabel;
@property (nonatomic, copy) ActionBlock tapAction;
@end
実装...
#import "MyViewHeaderView.h"
@interface MyViewHeaderView ()
@end
@implementation MyViewHeaderView
- (id)initWithReuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithReuseIdentifier:reuseIdentifier];
if (self) {
// Add customisation here...
// I have tried everything here...
self.tintColor = [UIColor colorWithWhite:0.961 alpha:1.0];
self.alpha = 0.5;
// self.contentView.backgroundColor = [UIColor colorWithWhite:0.5 alpha:0.5];
// self.backgroundColor = [UIColor colorWithWhite:0.5 alpha:0.5];
// can't remember what else.
// none of it makes it transparent. It sets the colour against
// a white background. i.e. 50% transparent but with a white opaque background.
// so I can't see the content of the table scrolling behind it.
self.flagImageView = [[UIImageView alloc] init];
self.flagImageView.image = [UIImage imageNamed:@"placeholder_flag"];
[self.flagImageView setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.contentView addSubview:self.flagImageView];
self.leagueNameLabel = [[UILabel alloc] init];
[self.leagueNameLabel setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.contentView addSubview:self.leagueNameLabel];
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTapped)];
tapGestureRecognizer.numberOfTapsRequired = 1;
tapGestureRecognizer.numberOfTouchesRequired = 1;
[self.contentView addGestureRecognizer:tapGestureRecognizer];
[self setupConstraints];
}
return self;
}
- (void)setupConstraints
{
// adding constraints...
}
- (void)viewTapped
{
self.tapAction();
}
@end
私のUITableViewDelegate
中では、ヘッダーを次のようにロードしています...
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
MyViewHeaderView *headerView = [tableView dequeueReusableHeaderFooterViewWithIdentifier:@"HeaderView"];
League *league = self.leagues[(NSUInteger) section];
headerView.leagueNameLabel.text = league.name;
headerView.tapAction = ^(){
[self leagueTapped:league];
};
return headerView;
}
これは正常に機能しており、ヘッダーは適切に表示されています。透明感がないだけ。
テーブルビューのコンテンツがその後ろにスクロールするのを見ることができる標準ビューのようなヘッダービューが欲しいです。
これを行う方法を教えてください。