gpt4 book ai didi

iphone - 添加元素时 UITableView 调整大小

转载 作者:行者123 更新时间:2023-11-28 20:20:44 26 4
gpt4 key购买 nike

我正在为 iPhone 使用 IRC 客户端,但我的 UITableView 有问题。

首先,我调整了 tableview 的大小,以便在用户键入消息时工具栏和键盘适合屏幕。看起来像这样:

User typing mode

但问题是,当用户完成输入并想要发送消息(发送到流并添加到 TableView )时, TableView 会调整大小并且工具栏放在底部但键盘仍然存在,我不这样做哪个文本字段退出第一响应者,我想在按下发送按钮之前和之后将键盘和工具栏保持在原位。看起来像这样:

Fail mode

这是我的一些代码:

-调整窗口大小

// Keyboard will show
- (void)keyboardWillShow {
[UIView animateWithDuration:0.25 animations:^{
[self.tableView setFrame:CGRectMake(0, 0, 320, 177)];
}];

[UIView animateWithDuration:0.25 animations:^{
[self.toolBar setFrame:CGRectMake(0, 177, 320, 43)];
}];
}

// Keyboard will hide
- (void)keyboardWillHide {
[UIView animateWithDuration:0.25 animations:^{
[self.tableView setFrame:CGRectMake(0, 0, 320, 481)];
}];

[UIView animateWithDuration:0.25 animations:^{
[self.toolBar setFrame:CGRectMake(0, 393, 320, 43)];
}];
}

-添加元素到tableview

// Retrieve the sender and the message from the input and add it to the data context
- (void)addMessage:(NSString *) input isSender: (BOOL) sender {
Message *messageToBeAdded = [[Message alloc] init];
[messageToBeAdded setIsSender:sender];

NSArray *arr = [input componentsSeparatedByString:[NSString stringWithFormat:@"PRIVMSG %@ :",[connection channel]]];
[messageToBeAdded setMessage:[arr objectAtIndex:1]];

arr = [input componentsSeparatedByString:@"!"];

if (sender) {
[messageToBeAdded setSender:[connection nick]];
} else {
NSString *tmp = [arr objectAtIndex:0];
[messageToBeAdded setSender:[tmp substringWithRange:NSMakeRange(1, [tmp length]-1)]];
}

[_messageList addObject:messageToBeAdded];

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:[_messageList count]-1 inSection:0];
[self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
}

我到处查看,我确定它与 tableview 的添加部分有关。如果有任何帮助或指导,我将不胜感激。

谢谢!

编辑:我刚刚意识到这与自定义单元格的使用有关。我创建了一个新项目并尝试逐步模拟我所做的事情。在我使用带有 UILabel 的自定义单元格时,一切都运行良好。 UILabel 通过 socket 连接到 UITableViewCell 类,这就是问题发生的地方。

#import <UIKit/UIKit.h>

@interface CustomCell : UITableViewCell

@property (strong, nonatomic) IBOutlet UILabel *myLabel;
@end

有没有想过这里可能出了什么问题?

最佳答案

我猜您的工具栏中有一个 UITextField。尝试...

[aTextField resignFirstResponder];

...当您按下发送/返回按钮时。

关于iphone - 添加元素时 UITableView 调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16156807/

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