gpt4 book ai didi

iOS - UIViewController 作为具有动态高度的弹出窗口

转载 作者:行者123 更新时间:2023-11-28 23:47:57 25 4
gpt4 key购买 nike

我有一个弹出 View ,其中包含两个标签、一个表格 View 和一个按钮。我在 Display UIViewController as Popup in iPhone 中创建了一个 ViewController描述。

我现在的特殊要求是,tableview 在所有情况下都不是必需的,所以我试图隐藏它并期望 Popup-View 的高度降低。但我总是得到相同的高度。我也尝试使用 UIStackView,但是在隐藏 tableview 的情况下, View 的高度没有改变。

在两种高度情况下,我还需要让 View 位于显示器的中心。

enter image description here

@interface AuthorizationMessageViewController ()

@property (weak, nonatomic) IBOutlet UIView *messageView;
@property (weak, nonatomic) IBOutlet UILabel *titelLabel;
@property (weak, nonatomic) IBOutlet UILabel *detailsLabel;
@property (weak, nonatomic) IBOutlet UITableView *tableView;
@property (weak, nonatomic) IBOutlet UIButton *okButton;
- (IBAction)okButtonTouchUp:(id)sender;
@end

@implementation AuthorizationMessageViewController

- (void)viewDidLoad
{
[super viewDidLoad];

self.messageView.layer.cornerRadius = 5;
self.messageView.layer.masksToBounds = YES;
self.messageView.backgroundColor = COLOR_BACKGROUND_WHITE;
self.messageView.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin;

self.tableView.delegate = self;
self.tableView.dataSource = self;
self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
self.tableView.separatorColor = [UIColor clearColor];
self.tableView.backgroundColor = COLOR_BACKGROUND_WHITE;

self.titelLabel.text = WHLocalizedString(@"EventHeaderAuthorization", nil);

[self setupView];
}

- (void)setupView
{
NSString *ns_messageText;

ns_messageText = @"test";

if (YES)
{
ns_messageText = @"Hide"
[self.tableView setHidden:YES];
}
else
{
ns_messageText = @"No Hide"
[self.tableView setHidden:NO];
}

self.detailsLabel.text = ns_messageText;
self.detailsLabel.textColor = COLOR_TEXT_GREY_KEY;
self.detailsLabel.numberOfLines = 0;
[self.detailsLabel sizeToFit];
}

#pragma mark - Table view data source

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 7;
}

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 21;
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"testCell"];

UILabel *weekDayLabel = (UILabel *)[cell viewWithTag:10];
weekDayLabel.text = @"weekday";
weekDayLabel.textColor = COLOR_TEXT_GREY_KEY;
weekDayLabel.font = FONT_LIGHT_SIZE_15;

UILabel *testLabel = (UILabel *)[cell viewWithTag:11];
testLabel = @"testLabel"
testLabel = COLOR_TEXT_GREY_KEY;
testLabel = FONT_LIGHT_SIZE_15;

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

return cell;
}

我希望有人对此有解决方案或想法。

最佳答案

想象一下下面的 UI

enter image description here

一个居中的 UIView 包含一个 UIButtonUITableView ,你需要 Hook 表格的高度约束并在弹出窗口中执行此操作,如果你想隐藏它

@IBOutlet weak var heightTblCon:NSLayoutConstraint!

//

self.heightTblCon.constant = show ? 300 : 0
self.view.layoutIfNeeded()

顺便说一句,为了清楚起见,我更改了背景 View 的颜色,这对于模式应该是透明的

关于iOS - UIViewController 作为具有动态高度的弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52364397/

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