Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c Can';在文本视图滚动之前,无法在UITextView中查看文本_Objective C_Uiscrollview_Interface Builder_Uitextview - Fatal编程技术网

Objective c Can';在文本视图滚动之前,无法在UITextView中查看文本

Objective c Can';在文本视图滚动之前,无法在UITextView中查看文本,objective-c,uiscrollview,interface-builder,uitextview,Objective C,Uiscrollview,Interface Builder,Uitextview,我的应用程序中有很多文本视图。出于某种原因,无论我是通过编程方式(来自internet)还是通过界面生成器(硬编码)设置UITextView文本,无论我做什么,当我在测试时转到该文本视图时,它都是空的。但是,当我滚动它的时候,所有的文本都不在任何地方出现了。只是澄清一下,我并不是说文本视图不会滚动,因为没有足够的文本。textview中已编程文本,但在应用程序运行时,它不会显示任何文本,直到textview实际滚动,然后文本才显示出来 有人知道怎么解决这个问题吗?我尝试过取消视图链接、重新链接以

我的应用程序中有很多文本视图。出于某种原因,无论我是通过编程方式(来自internet)还是通过界面生成器(硬编码)设置UITextView文本,无论我做什么,当我在测试时转到该文本视图时,它都是空的。但是,当我滚动它的时候,所有的文本都不在任何地方出现了。只是澄清一下,我并不是说文本视图不会滚动,因为没有足够的文本。textview中已编程文本,但在应用程序运行时,它不会显示任何文本,直到textview实际滚动,然后文本才显示出来

有人知道怎么解决这个问题吗?我尝试过取消视图链接、重新链接以及所有内容

代码: h文件

m文件

#import "AboutViewController.h"
@interface AboutViewController ()

@end

@implementation AboutViewController
@synthesize responseData= _responseData;
@synthesize textView;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {

        NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://www.someurl.com"]];


        [NSURLConnection connectionWithRequest:req delegate:self];
    }
    return self;
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {

    if (!_responseData) {
        [self setResponseData:[NSMutableData data]];
    }

    [_responseData appendData:data];
}


  - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)URLresponse {

    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)URLresponse;

    if (![httpResponse isKindOfClass:[NSHTTPURLResponse class]]) {
        NSLog(@"Unknown response type: %@", URLresponse);
        return;
    }


}

-(void)connectionDidFinishLoading:(NSURLConnection *)connection {

    res=[[NSString alloc] initWithData:_responseData encoding:NSUTF8StringEncoding];

    textView.text = res;

    NSLog(@"RES:%@",res);
}

- (void)viewDidLoad
{
    [super viewDidLoad];

}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
-(void)dealloc{
    [super dealloc];
    [res release];
}
@end

我猜想,当您设置UITextView的文本时,它不可见,因此无法绘制文本

一旦UITextView可见,您可以通过执行以下操作强制它绘制文本:

[textView setNeedsDisplay];
或者可能是这样:

[textView layoutSubviews];
否则,在UITextView显示之前,不要设置它的text属性

其他可能性:

  • UITextView是否在包含UITextView的视图框架内?如果父视图未剪裁子视图,并且UITextView位于父视图的框架之外,则可能是您的问题。问题还可能是父视图超出父视图的边界,或父视图的父视图的边界,等等
  • 您正在尝试将大量文本加载到文本视图中吗?如果是这样,试着做一些简单的事情,比如textView.text=@“test”;看看这是否有效
  • textView是UIScrollView还是UIWebView的子视图?这肯定会带来一些问题
  • 您的文本视图是否位于另一个视图后面?如果是这样,请尝试将文本视图放在前面,看看这是否解决了问题
  • 通常,您会遇到一些布局问题,导致UITextView无法绘制其文本。出于某种原因,它认为它不需要绘制文本。也许它不认为它在屏幕上或可见

    唉,最绝望的解决方案可能是模拟一个卷轴:

    textView.contentOffset = CGPointMake(0, 1);
    textView.contentOffset = CGPointMake(0, 0);
    

    请在加载
    textView
    时尝试

    NSAttributedString *oldtext = objTextView.attributedText;
    
    [objTextView removeFromSuperview];
    
    objTextView.attributedText = oldtext;
    
    [self.view addSubview:objTextView];
    

    在我的情况下,我的文本是
    属性化的

    谢谢所有的帮助,但我无法让它工作。我用我的代码编辑了我的原始问题-注意:我更改了url,因为它不需要在internet上共享。你尝试了我提出的所有建议吗?你的代码没有问题,正如我所建议的,在布局方面可能还有其他一些事情正在发生,这使得文本视图认为它不需要绘制文本。谢谢Michael!我也面临这个问题。但是通过使用你的1种可能性,我的问题得到了解决是否有可能从后台线程调用initWithNibName:bundle:呢?您可能想尝试一些标准的调试技术,如翻转僵尸对象;对我来说,这听起来像是一些腐败的内部结构。
    NSAttributedString *oldtext = objTextView.attributedText;
    
    [objTextView removeFromSuperview];
    
    objTextView.attributedText = oldtext;
    
    [self.view addSubview:objTextView];