gpt4 book ai didi

ios - 如何将静态 UIButton 覆盖在 UITableView 上

转载 作者:行者123 更新时间:2023-11-29 02:09:02 24 4
gpt4 key购买 nike

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

这是我的代码:

#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

最佳答案

您正在使用 TableView Controller ,因此 self.view 是 TableView 。 TableView 是 ScrollView ,因此 View 会与其他所有内容一起滚动。

您应该使用带有表格的常规 View Controller 作为 subview 。

或者,您可以尝试在 scrollViewDidScroll: ScrollView 委托(delegate)方法中重置 View 的框架,但我认为 View 仍然会有点抖动。

最后,您可以将按钮直接添加到 UIWindow,但这可能会带来一系列与旋转、动画和过渡有关的其他问题。

关于ios - 如何将静态 UIButton 覆盖在 UITableView 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29483725/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com