私はNavCtrlを持っています。その上にTableView/ctrlを持っていれば、私はscrollviewを持っています。NavCtrl + TableViewCtrl + ScrollView、TableViewが接触しない
私はテーブルビューでCellを押すことができないことを除いて、すべてが機能しています。
私はnextResponderのことを試しましたが、すべてが正しいことをしているようです。ここでは、それはまだ「クリーン」ではありませんので、このコードは:)テストのために多くのことを変更されている心に留めておく、コードの一部抜粋です:
ScrollView *myScrollView = [[ScrollView alloc] initWithFrame:CGRectMake(0, 150, 320, 680)];
myScrollView.contentSize = CGSizeMake(320 , 888);
myScrollView.pagingEnabled = NO;
myScrollView.bounces = NO;
myScrollView.directionalLockEnabled = YES;
myScrollView.canCancelContentTouches = NO;
myScrollView.delaysContentTouches = NO;
myScrollView.scrollEnabled = true;
myScrollView.userInteractionEnabled = YES;
myScrollView.scrollsToTop = NO;
mySettingsTableView = [[SettingsTableView alloc] init];
// Settings View Ctrl
SettingsTableViewCtrl *mySettingsTableViewCtrl = [[SettingsTableViewCtrl alloc] initWithStyle:UITableViewStyleGrouped];
mySettingsTableViewCtrl.tableView.scrollEnabled = NO;
mySettingsTableViewCtrl.tableView.delaysContentTouches = NO;
mySettingsTableViewCtrl.tableView.canCancelContentTouches = NO;
mySettingsTableViewCtrl.view.userInteractionEnabled = YES;
[mySettingsTableViewCtrl.view addSubview:myScrollView];
[mySettingsTableViewCtrl.view addSubview:mySettingsTableView];
* scrollViewのサブクラスで*
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
//if (![self yourMethodThatDeterminesInterestingTouches:touches withEvent:event])
[super touchesBegan:touches withEvent:event];
[self.nextResponder touchesBegan:touches withEvent:event];
}
ここでタッチイベントからのNSLogです:
NSLog(@"Event: %@", event);
NSLog(@"Event NextResponder : %@\n", self.nextResponder);
2011-07-05 13:09:36.063 App[1924:14f03] Event: <UITouchesEvent: 0x802ea30> timestamp: 8503.71 touches: {(
<UITouch: 0x80e6f60> phase: Began tap count: 1 window: <UIWindow: 0x836eb00; frame = (0 0; 320 480); layer = <CALayer: 0x836ebb0>> view: <ScrollView: 0x83770b0; baseClass = UIScrollView; frame = (0 150; 320 680); clipsToBounds = YES; layer = <CALayer: 0x8376e00>; contentOffset: {0, 0}> location in window: {140, 249} previous location in window: {140, 249} location in view: {140, 35} previous location in view: {140, 35}
)}
2011-07-05 13:09:36.065 App[1924:14f03] Event NextResponder : <SettingsTableViewCtrl: 0x8377db0>
なぜスクロールビューをtableviewに追加していますか? – Mahesh
私はそうではありません、私はテーブルビューの上部にスクロールビューを追加しています。基本的に私は、私のtableviewの上にあるdatePickerをスクロールしたいと思います。しかしテストのために、私は現時点ではスクロールビュー内に何も持っていません。 – Darren
一時的にSettingsTableViewCtrlにスクロールビューを追加せずにチェックします。 – Mahesh