gpt4 book ai didi

iphone - 在导航栏上放置自定义 View

转载 作者:行者123 更新时间:2023-11-28 22:51:30 29 4
gpt4 key购买 nike

我想显示图像、标题名称和两个左右按钮。我已经成功完成了。这是代码:

    UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 200, 100)];

UIButton *leftButton = [[UIButton alloc]init];
[leftButton setImage:[UIImage imageNamed:@"previous-arrow.png"] forState:UIControlStateNormal];
[leftButton addTarget:self action:@selector(goPrevious:) forControlEvents:UIControlEventTouchUpInside];
[leftButton setFrame:CGRectMake(20, 50, 14, 13)];

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Title.png"]];
[imageView setFrame:CGRectMake(leftButton.frame.origin.x+leftButton.frame.size.width+4, 20, 50, 50)];

UILabel *nameLabel = [[UILabel alloc]initWithFrame:CGRectMake(imageView.frame.origin.x+imageView.frame.size.width+4, 30, 100, 40)];
NSString *cName = [NSString stringWithFormat:@"%@",[NameArray objectAtIndex:indexPath.section]];

[nameLabel setTextColor:[UIColor whiteColor]];
[nameLabel setBackgroundColor:[UIColor clearColor]];
[nameLabel setContentMode:UIViewContentModeScaleAspectFill];
[nameLabel setTextAlignment:UITextAlignmentLeft];
CGSize expectedLabelSize = [cName sizeWithFont:nameLabel.font
constrainedToSize:CGSizeMake(100, 40)
lineBreakMode:nameLabel.lineBreakMode];
[nameLabel setFrame:CGRectMake(imageView.frame.origin.x+imageView.frame.size.width+4, 35, expectedLabelSize.width, expectedLabelSize.height)];
nameLabel.text=cName;

UIButton *rightButton = [[UIButton alloc]init];
[rightButton setImage:[UIImage imageNamed:@"next-arrow.png"] forState:UIControlStateNormal];
[rightButton setFrame:CGRectMake(nameLabel.frame.origin.x+nameLabel.frame.size.width+4, 50, 14, 13)];
[rightButton addTarget:self action:@selector(next:) forControlEvents:UIControlEventTouchUpInside];

[view addSubview:nameLabel];
[view addSubview:imageView];
[view addSubview:leftButton];
[view addSubview:rightButton];

self.navigationItem.titleView = view;

此代码写在 cellForRowAtIndexPath 中。该 View 在导航栏上正确显示,但在滚动 tableview 之后。最初它显示在错误的坐标上。

请建议。

最佳答案

将此代码放在viewWillAppearviewDidAppear 中。它不应该在 tableView 协议(protocol)中!

关于iphone - 在导航栏上放置自定义 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11878190/

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