如何在ios中覆盖ScrollView内容或更改焦点

时间:2013-07-02 11:38:47

标签: iphone ios objective-c

我是ios的初学者.... 在我的一项活动中,我创建了自定义scrollView,并在其上创建了一些自定义textField ..现在,当我们点击textField时,我的自定义tableView会打开,但是表格混合已经存在textField ....如果我在UIView上添加此表,则它不会滚动......所以如何覆盖滚动视图textField并滚动tabel with textField .....我已声明所有table delegates并且表格显示正确但滚动问题出现....

scrollview=[[UIScrollView alloc]initWithFrame:CGRectMake(0,60,320,540)];
[scrollview setContentSize:CGSizeMake(800,1500)];

scrollview.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
scrollview.autoresizesSubviews = YES;

scrollview.scrollEnabled = YES;
scrollview.delegate = self;
scrollview.directionalLockEnabled = YES;

scrollview.showsVerticalScrollIndicator = YES;

scrollview.showsHorizontalScrollIndicator = YES;

scrollview.autoresizesSubviews = YES;
scrollview.backgroundColor=[UIColor whiteColor];
[self.view addSubview:scrollview];

AdviseDr=[[UITextField alloc]initWithFrame:CGRectMake(150,110,140,30)];
AdviseDr.font = [UIFont boldSystemFontOfSize:15.0];
AdviseDr.borderStyle = UITextBorderStyleLine;
AdviseDr.clearButtonMode = UITextFieldViewModeWhileEditing; 
AdviseDr.delegate =self;
AdviseDr.tag=1;
[scrollview addSubview:AdviseDr];

table_AdviseDoctor=[[UITableView alloc]initwithframe:CGRectMake(150,200,170,200)style:UITableViewStylePlain];                                                        
table_AdviseDoctor.delegate=self;
table_AdviseDoctor.dataSource=self;
table_AdviseDoctor.layer.borderWidth = 2.0;
table_AdviseDoctor.layer.borderColor = [UIColor grayColor].CGColor;
[self.view addSubview:table_AdviseDoctor];
table_AdviseDoctor.hidden=YES;
Medicalfacility=[[UITextField alloc]initWithFrame:CGRectMake(150,150,170,30)];
Medicalfacility.font = [UIFont boldSystemFontOfSize:15.0];
Medicalfacility.borderStyle = UITextBorderStyleLine;
Medicalfacility.delegate =self;
Medicalfacility.tag=2;
[scrollview addSubview:Medicalfacility];
[Medicalfacility addTarget:self action:@selector(btnpress1:)forControlEvents:UIControlEventEditingDidBegin];

2 个答案:

答案 0 :(得分:0)

更好的选择是,当您点击UITextField时,也会隐藏您的UITextField,这样您的UITextField就不会与您的UITableView混淆,当您删除/隐藏时那时您的UITableView隐藏的UITextField再次取消隐藏(隐藏=否)。其他方面有很多方法可以解决你的问题,我喜欢这个选项所以我建议你。

其他选项是。

在UIView中使用UITableView,我希望你已经知道UITableView有自己的ScrollView,所以你不需要放入任何scrollView。

当您点击当时位于UITextFiled的{​​{1}}时,您还会设置用户无法对UIScrollViewUIScrollView执行的限制 (给userInteraction = NO)。所以当你的UITableView被隐藏时,也要给(给userInteraction = YES)

答案 1 :(得分:0)

UserInteraction是正确的,但你知道我们写这个[self.view addsubview:Table_AdviseDoctor]然后......当我们滚动然后点击文本字段然后我的表从所需位置下面打开,然后我们编写代码UserInteraction.enable =无;然后滚动不正常,但首先滚动,然后点击文本归档然后..问题发生不正确的位置.....