gpt4 book ai didi

ios - NSNotification到达后,我无法编辑任何框架

转载 作者:行者123 更新时间:2023-12-01 16:41:30 25 4
gpt4 key购买 nike

我正在使用NSNotification,并且当通知到达其他类时,我想在GUI中进行更改。
这是我发布通知的方式,我不确定这是否是发布通知的好方法?

   [[NSNotificationCenter defaultCenter]
postNotificationName:@"postDetailsNotification"
object:nil userInfo:[NSDictionary dictionaryWithObjectsAndKeys: result, @"arrayDetails", nil]];

所以在其他 class ,我会像这样。
   -(void)registerNotifications
{

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(receivePostDetailsNotification:)
name:@"postDetailsNotification"
object:nil ];

}

- (void) receivePostDetailsNotification:(NSNotification *) notification
{
NSDictionary * info = [notification userInfo];
inputDetails = [info objectForKey:@"arrayDetails"];
NSLog(@"notification arriveddd=%@",[[inputDetails PostDetail] Text]);



[self customTxtMessageViewHeight];

}

在customTXtMessageViewHelight方法中,我仅检查txtMessage(它是textview)的内容大小,并调整其大小。
 -(void)customTxtMessageViewHeight
{

CGFloat fl;
//MeasureHeightOfUITextView is a method to count textview height and it works without problem
fl=[nesneResizeTextViewHeight measureHeightOfUITextView:txtMessage ];
txtMessage.frame=CGRectMake(txtMessage.frame.origin.x, txtMessage.frame.origin.y, txtMessage.frame.size.width, fl);
imgMessageBackground.frame=CGRectMake(imgMessageBackground.frame.origin.x, imgMessageBackground.frame.origin.y, imgMessageBackground.frame.size.width, fl);


NSLog(@"size1=%fl",fl);
NSLog(@"textviewsize=%fl",txtMessage.frame.size.height);

}

日志是正确的,但是txtMessage的高度没有改变。关于iboutlets没问题,因为如果我在viewDidLoad方法中尝试txtMessage,它的高度就会改变。

因此,在阅读了一些文章之后,我得到了它NSNotification在后台线程中工作,并且我试图像这样调用customTxtMessageViewHeight方法;
[self performSelectorOnMainThread:@selector(customTxtMessageViewHeight) withObject:self waitUntilDone:NO];

但是什么都没有改变。
在我尝试更改NSNotification的发布方式之后
dispatch_async(dispatch_get_main_queue(),^{
[[NSNotificationCenter defaultCenter]
postNotificationName:@"postDetailsNotification"
object:nil userInfo:[NSDictionary dictionaryWithObjectsAndKeys: result, @"masivDetails", nil]];
});

我以为它将使它在mainThread上工作,但它也没有工作。
我真的很困惑,将很高兴获得任何帮助。
谢谢。

最佳答案

通知在其发布的同一线程上发送/接收。

如果日志一切正常,则好像您的相框被其他东西重新设置了。通常使用此选项的是自动布局-如果您使用的是自动布局,则无需通过设置框架来调整尺寸,而可以通过更新约束来调整尺寸。否则,设置框架会触发布局遍历,该布局遍历会将框架重置回原来的位置。

关于ios - NSNotification到达后,我无法编辑任何框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23905348/

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