1
這個應用程序的問題是,TapCatchingController沒有收到部分標題或部分之間的水龍頭 。我想知道我該怎麼做。 我儘量保持我的示例程序儘可能小,但它仍然相當長, 對不起。該代碼是自包含的。如果您將其複製並粘貼到您的AppDelegate 中,那麼您應該很好! :)Gotta Catch'm所有! - 通過UITableView UIView不接收水龍頭
由於提前, --Nick
#import <UIKit/UIKit.h>
//-----------------------------------------------------------------------------------------------
//Class InfiniteViewController: Says something when view is tapped, view is invisible to the user
@interface TapCatchingViewController : UIViewController {} @end
@implementation TapCatchingViewController
- (void) loadView {
self.view = [[UIView alloc] init];
self.view.alpha = 1.0;
}
- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { NSLog(@"You tapped this! Tuhm-dudu-dum"); }
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return YES; }
- (void) viewWillDisappear:(BOOL)animated { [super viewWillDisappear: animated]; }
@end
//-----------------------------------------------------------------------------------------------
//Class SuperViewControoler: A tableview who has on top of it an InfiniteViewController's view
//Any tap on a SuperViewController's view should pass through the InfiniteViewController
@interface SuperViewController : UITableViewController {
TapCatchingViewController * vc;
}
@end
static const int sections = 7;
static const int rowsPerSection = 9;
@implementation SuperViewController
- (void) viewDidLoad {
vc = [[TapCatchingViewController alloc] init];
vc.view.frame = CGRectInfinite;
[self.view addSubview: vc.view];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return sections; }
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return rowsPerSection; }
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { return @"Section Header"; }
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { return 250.0f; }
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell.textLabel.text = @"Meow, meow.";
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {}
- (void)dealloc {
[vc dealloc];
[super dealloc];
}
@end
//-----------------------------------------------------------------------------------------------
//Class AppDelegate! The usual stuff :)
@interface InfiniviewsAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
UIViewController * vc;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@end
@implementation InfiniviewsAppDelegate
@synthesize window;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
vc = [[SuperViewController alloc] initWithStyle: UITableViewStyleGrouped];
[window addSubview: vc.view];
[window makeKeyAndVisible];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application {}
- (void)applicationDidBecomeActive:(UIApplication *)application {}
- (void)applicationWillTerminate:(UIApplication *)application {}
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application {}
- (void)dealloc {
[vc release];
[window release];
[super dealloc];
}
@end