繁体   English   中英

在UIViewController顶部显示自定义UIView

[英]Display Custom UIView On Top of UIViewController

我正在寻找实现以下功能的最佳方法的意见。 我有一个UIViewController和一个UITableView处于分组格式。 每个TableViewCell都包含一个NSString。 当用户点击我想在didSelectRowForIndexPath方法中要使用的单元格时,弹出一个具有单个文本字段的UIView,该视图将在选定的给定单元格中预先填充NSString。 显示UIVIew的原因是我希望它约为280 x 380帧,并且仍然可以看到一些UITableView。

目标是除了iPhone外,它的行为类似于ModalViewController。 是否有人对如何实现此行为或是否有更好的实现有任何建议?

预先创建UIView(内部包含UITextField),并将其隐藏:

// Of course, these instance variable names are made up, and should be changed
self.myModalView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 280, 380)] autorelease];
[self.view addSubview:self.myModalView]

self.myTextField = [[[UITextField alloc] init] autorelease];
[self.myModalView addSubview:self.myTextField];

self.myModalView.hidden = YES;

然后,当用户选择一行时,填充文本字段并显示模式视图:

- (void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath {
  // Replace stringAtIndexPath with however your data source accesses the string
  NSString* myString = [self stringAtIndexPath:indexPath];
  self.myTextField.text = myString;
  self.myModalView.hidden = NO;
}

如果想花哨的话,可以在显示模式视图之前进行一些CATransition的操作。

我认为您可以在UITableView中使用“ addSubView”。 直接将ModalView添加到您的UITableView。 它会工作。

使用一些动画来实现此效果。 当UIView出现时,它将像某些键盘行为一样提起UITableView。 因此,您必须在self.view上添加SubView并修改UITableView的框架。 并且,UITableView应该是self.view的子视图,如果self.view与UITableView相同,那么您就没有self.view用于添加此UIView。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM