我的tableview控制器中有一个自定义分段控件,tableview标题中有一个搜索栏。当我向上滚动到最后一个单元格时,tableview会反弹回来。但问题是:我的搜索栏隐藏在分段控件后面,并且视图底部会出现一个空白区域。我希望如果用户向上滚动桌面视图,它会反弹并返回到之前的位置,如第一个屏幕截图所示。
以下是我的分段控制的代码:
self.projectSegmentControl = [[UISegmentedControl alloc]initWithItems:[NSArray arrayWithObjects:@"Active Projects", @"All Projects", nil]];
[self.projectSegmentControl addTarget:self action:@selector(actionSelectProject) forControlEvents:UIControlEventValueChanged];
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width -20;
self.projectSegmentControl.frame = CGRectMake([UIScreen mainScreen].bounds.size.width-screenWidth-5,10, screenWidth, 30.0);
_segmentControlView = [[UIView alloc] initWithFrame: CGRectMake(0,60, screenRect.size.width,47.0)];
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
_segmentControlView.backgroundColor = [UIColor whiteColor];
self.projectSegmentControl.backgroundColor = [UIColor whiteColor];
[_segmentControlView addSubview:self.projectSegmentControl];
[appDelegate.window addSubview:_segmentControlView];
self.projectSegmentControl.selectedSegmentIndex = 0;
CGFloat screenHeight = screenRect.size.height;
if(screenHeight==480 || screenHeight==568)
{
CGPoint newOffset = CGPointMake(0, -[self.tableView contentInset].top);
[self.tableView setContentOffset:newOffset animated:YES];
}
UIFont *font = [UIFont fontWithName:@"Avenir" size:12.0f];
NSDictionary *attributes = [NSDictionary dictionaryWithObject:font forKey:NSFontAttributeName];
[_projectSegmentControl setTitleTextAttributes:attributes forState:UIControlStateNormal];
当我向上滚动tableview反弹但搜索栏隐藏在分段控件后面时。
PS:如果需要,我会添加代码。提前致谢
答案 0 :(得分:0)
上面的帖子假设你正在使用
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/PanelName"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:textColor="@color/colorBlack"
android:gravity="center_vertical"
android:paddingLeft="10dp"
android:text="Parking Name"
android:textSize="14sp" />
<TextView
android:id="@+id/PanelAddress"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:textColor="@color/colorBlack"
android:gravity="center_vertical"
android:paddingLeft="10dp"
android:text="Parking Address blablabla Paris"
android:textSize="14sp" />
</LinearLayout>
<android.support.v7.widget.AppCompatButton
android:id="@+id/btn_go"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/colorPrimary"
android:textColor="@color/colorAccent"
android:layout_marginTop="30dp"
android:layout_marginBottom="24dp"
android:layout_marginRight="24dp"
android:padding="12dp"
android:text="GO !"/>
</LinearLayout>
(不是UITableViewController
)
您已在tableview的标题中添加了搜索栏。
然后以编程方式创建了一个分段控制器并添加到窗口中
UIViewController
因此,当您滚动表格时,显然标题也会随之移动。所以它被隐藏在分段控制之后。
解
步骤1.创建uiviewcontroller(不是uitableviewcontroller)
步骤2.在视图中添加分段控件
步骤3.在分段控件下添加静态搜索栏。
步骤4.so在滚动tableview时,不会隐藏分段控件
希望这会对你有所帮助。