【问题标题】:UITableView Overlay when section index touched触摸部分索引时的 UITableView 覆盖
【发布时间】:2012-02-08 00:08:42
【问题描述】:

我有一个非常自定义的表格视图,它实际上用作内容视图,但表格视图是显而易见的选择。我有一个用于滚动 TableView 的部分索引 - 但没有部分(嗯,显然有一个)。出于用户定位的目的,我想在半透明的表格视图上淡化一个视图,并在其中显示文本。滚动新 iPod nano 的部分索引时,它应该看起来像带有字母的覆盖层。我不知道我应该把代码放在哪里——因为我的视图也必须在某个时候再次消失,而且我真的不想使用通知。我会在 tableview: sectionForSectionIndexTitle 方法中初始化视图。提前致谢。

【问题讨论】:

  • 您是在使用界面生成器还是通过 loadView 对其进行硬编码?
  • 嗯,我正在考虑对其进行硬编码,这样它就不会弄乱我的故事板......

标签: objective-c ios5 xcode4.2


【解决方案1】:

在您的 .h 文件中创建一个属性

@property (nonatomic, retain) UILabel *overlayLabel;

并将以下代码添加到您的 .m 文件中

- (void)viewDidLoad {
      [super viewDidLoad];
      self.overlayLabel = [[[UILabel alloc] initWithFrame:CGRectMake(0.0f,
                                                                     0.0f,
                                                                     self.tableView.frame.size.width,
                                                                      self.tableView.frame.size.height)] autorelease];
      overlayLabel.backgroundColor = [UIColor clearColor];
      overlayLabel.alpha = .5f;
      overlayLabel.textAlignment = UITextAlignmentCenter;
      overlayLabel.text = @"Some text";
    }

    - (void)viewWillAppear:(BOOL)animated {
      [super viewWillAppear:animated];
      [self.tableView addSubview:overlayLabel];
    }

    - (void)viewWillDisappear:(BOOL)animated {
      [super viewWillDisappear:animated];
      [overlayLabel removeFromSuperview];
    }

【讨论】:

  • 感谢您的回答,但我已经做到了。我添加了一个带有标签的 SubView 并将其覆盖。然后我添加一个 UIGestureRecognizer 来触摸 UITableViewIndex。我现在的问题是,在 ViewDidLoad 中 UITableViewIndex 显然还没有初始化,因此从 self.view.subviews 捕获 UItableViewIndex 的 for 例程此时不存在。想法?如果有帮助,我可以发布一些代码...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 2015-03-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多