我有一个应用程序,其中包含一个带有两个子视图的滚动视图(在它们之间向左和向右滚动)
两个视图都正确显示,并且视图之间的滚动工作正常。现在我想将第一个视图更改为TTTableView(由Three20提供),但是当我使用TTCatalog应用程序中的“TableControlsTestController”类时,我看到的是一个空的tableView
请注意,此类包含显示6个单元格的所有数据
要添加新的TTTableView,请使用以下
[scrollView addSubview:detailView.view];
其中detailView是TableControlsTestController的实例
为了尝试缩小问题所在,我也试着调用
[self presentModalViewController:detailView animated:YES];
这正确显示了6个单元格的表格视图。
为什么当我尝试将视图添加到scrollView时,这不能像我期望的那样工作?
如果您无权访问TTCatalog
,请参考#import "TableControlsTestController.h"
///////////////////////////////////////////////////////////////////////////////////////////////////
@implementation TableControlsTestController
///////////////////////////////////////////////////////////////////////////////////////////////////
// NSObject
- (id)init {
if (self = [super init]) {
self.tableViewStyle = UITableViewStyleGrouped;
self.autoresizesForKeyboard = YES;
self.variableHeightRows = YES;
UITextField* textField = [[[UITextField alloc] init] autorelease];
textField.placeholder = @"UITextField";
textField.font = TTSTYLEVAR(font);
UITextField* textField2 = [[[UITextField alloc] init] autorelease];
textField2.font = TTSTYLEVAR(font);
textField2.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
TTTableControlItem* textFieldItem = [TTTableControlItem itemWithCaption:@"TTTableControlItem"
control:textField2];
UITextView* textView = [[[UITextView alloc] init] autorelease];
textView.text = @"UITextView";
textView.font = TTSTYLEVAR(font);
TTTextEditor* editor = [[[TTTextEditor alloc] init] autorelease];
editor.font = TTSTYLEVAR(font);
editor.backgroundColor = TTSTYLEVAR(backgroundColor);
editor.autoresizesToText = NO;
editor.minNumberOfLines = 3;
editor.placeholder = @"TTTextEditor";
UISwitch* switchy = [[[UISwitch alloc] init] autorelease];
TTTableControlItem* switchItem = [TTTableControlItem itemWithCaption:@"UISwitch" control:switchy];
UISlider* slider = [[[UISlider alloc] init] autorelease];
TTTableControlItem* sliderItem = [TTTableControlItem itemWithCaption:@"UISlider" control:slider];
self.dataSource = [TTListDataSource dataSourceWithObjects:
textField,
editor,
textView,
textFieldItem,
switchItem,
sliderItem,
nil];
}
return self;
}
@end
答案 0 :(得分:2)
事实证明,有些事件没有通过scrollView传播,因此没有在TTTableViewController中处理。要解决这个问题,我必须在我的scrollView
中执行以下操作- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[myNewTTViewController viewWillAppear:NO];
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[myNewTTViewController viewDidAppear:NO];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[myNewTTViewController viewWillDisappear:NO];
}
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
[myNewTTViewController viewDidDisappear:NO];
}
一旦我这样做,表就会突然变成生活