如何将静态 UIButton 覆盖在 UITableView 上

编程入门 行业动态 更新时间:2024-10-27 18:29:27
本文介绍了如何将静态 UIButton 覆盖在 UITableView 上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

基本上,无论表格视图是否滚动,我都想在顶部创建一个静态 UIButton.但是,我尝试将 UIButton 添加为 UIView 的子视图,并使用bringSubviewToFront"方法将其置于顶部.但是,当我滚动 UITableView 时,UIButton 仍然会移动.因此,如何制作一个覆盖 UITableView 的静态 UIButton?

Basically, I wanna create a static UIButton on top whether or not the table view is scrolled. However, I tried to add the UIButton as the subview of the UIView and make it on the top by using "bringSubviewToFront" method. However, the UIButton still moves when I scroll the UITableView. Therefore, how can I make a static UIButton overlaying the UITableView?

这是我的代码:

#import "DiscoverTimelineTableViewController.h" @interface DiscoverTimelineTableViewController () @property (strong, nonatomic) UIView* myview; @end @implementation DiscoverTimelineTableViewController - (void)viewDidLoad { [super viewDidLoad]; [self displayMakePlanButton]; NSLog(@"%f", self.view.layer.zPosition); NSLog(@"%f", self.tableView.layer.zPosition); } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } #pragma mark - Table view data source - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { #warning Potentially incomplete method implementation. // Return the number of sections. return 1; } - (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 100.0f; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath]; // Configure the cell... cell.textLabel.text = @"Sleepy"; return cell; } #pragma mark - Add the make plan button - (void) displayMakePlanButton { CGFloat buttonWidth = self.view.frame.size.width; CGFloat buttonHeight = 104.0f; CGFloat navBarHeight = self.navigationController.navigationBar.frame.size.height; CGFloat statBarHeight = [UIApplication sharedApplication].statusBarFrame.size.height; UIButton *makePlanButton = [UIButton buttonWithType: UIButtonTypeCustom]; [makePlanButton setFrame:CGRectMake(0, self.view.frame.size.height - buttonHeight - navBarHeight - statBarHeight, buttonWidth, buttonHeight)]; [makePlanButton setBackgroundColor:[UIColor colorWithRed:0.286 green:0.678 blue:0.231 alpha:1]]; [makePlanButton setTitle:@"MAKE PLAN" forState:UIControlStateNormal]; [self.view addSubview:makePlanButton]; //makePlanButton.layer.zPosition = 1; [self.view bringSubviewToFront:makePlanButton]; NSLog(@"%f", makePlanButton.layer.zPosition); } @end

推荐答案

你使用的是表视图控制器,所以 self.view 是表视图.表格视图是滚动视图,因此视图与其他所有内容一起滚动.

You're using a table view controller, so self.view is the table view. A table view is a scroll view, so the view scrolls along with everything else.

您应该使用带有表作为子视图的常规视图控制器.

You should use a regular view controller with a table as a subview instead.

或者,您可以尝试在 scrollViewDidScroll: 滚动视图委托方法中重置视图的框架,但我认为视图仍然会有点抖动.

Alternatively, you could try resetting the view's frame in the scrollViewDidScroll: scroll view delegate method, but I think the view would still jitter a bit.

最后,您可以将按钮直接添加到 UIWindow 中,但这可能会带来一大堆关于旋转、动画和过渡的其他问题.

Finally, you could add the button directly to the UIWindow, but that's likely to bring up a whole host of other problems with rotations, animations, and transitions.

更多推荐

如何将静态 UIButton 覆盖在 UITableView 上

本文发布于:2023-08-05 21:41:22,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1308220.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何将   静态   UITableView   UIButton

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!