0

我的应用程序中的 uitextview 有问题。

我在我的应用程序中使用了这个组件Collapse Click ,但是当我添加一个带有 textview 的子视图时,我遇到了一些问题。

我需要调整 uitextview 的大小,以便在打开面板时在没有滚动条的情况下看到它。

CGRect newTextFrame = self.taskInfoText.frame;
newTextFrame.size = self.taskInfoText.contentSize;
newTextFrame.size.height = newTextFrame.size.height;
self.taskInfoText.frame = newTextFrame;
[self.taskInfoText setContentSize:self.taskInfoText.frame.size];

使用这段代码,如果面板以纵向模式打开,则没有问题,并且文本适合 uitextview。当我以横向模式打开面板时,uitextview 内的文本不适合,直到视图控制器旋转两次。

我该如何解决?

谢谢

我设置文本视图大小的函数是这样的:

    -(void)resizeTextViewOnContent
{   
    CGRect newTextFrame = self.taskInfoText.frame;
    newTextFrame.size = self.taskInfoText.contentSize;
    newTextFrame.size.height = newTextFrame.size.height;
    newTextFrame.size.width = newTextFrame.size.width;
    newTextFrame.size.width = newTextFrame.size.width;
    self.taskInfoText.frame = newTextFrame;
    [self.taskInfoText setContentSize:self.taskInfoText.frame.size];
}

这是调整视图容器大小的那个

    -(void)resizeToFitSubviews
{
    float width = 0;
    float height = 0;

    for (UIView *v in [self.view subviews])
    {
        if(v.tag != 3)
        {
            float fw = v.frame.origin.x + v.frame.size.width;
            float fh = v.frame.origin.y + v.frame.size.height;
            width =  MAX(fw, width);
            height = MAX(fh, height);
        }
    }

    CGRect orientationRect = [UtilityService getScreenBoundsForCurrentOrientation];

    [self.view setFrame:CGRectMake(self.view.frame.origin.x,
                                   self.view.frame.origin.y,
                                   orientationRect.size.width,
                                   height)];

     NSLog(@"RECT FRAME: %@", NSStringFromCGRect(self.view.frame));
}
4

0 回答 0