У меня есть очень любопытный случай (похожий на этот ):
У меня есть простой UITextView, который находится в UIView, который я загружаю программно (NIB).Содержимое загружается из файла TXT в UITextView.text.Это происходит в viewDidLoad.
Все хорошо, если мой текст состоит всего из нескольких строк и если нет необходимости в прокрутке.Однако, если текст длиннее, чем UITextView, он не будет отображаться.Только если я коснусь экрана и попытаюсь прокрутить, текст внезапно всплывет.
Я попробовал это подтолкнуть, чтобы текст появился в viewDidLoad:
textView.contentOffset = CGPointMake(0.0, 1.0);
textView.contentOffset = CGPointMake(0.0, 0.0);
Но он выигралт работа.Я также убедился, что позвонил [super viewWillAppear] и т. Д., Но опять же, не повезло.Единственное, что немного помогает, - это если я инициирую свое представление и загружаю текст в viewDidAppear.Тем не менее, последняя часть UITextView по-прежнему не отображается, если я не прокручиваю.
Есть идеи, почему UITextView ведет себя таким образом?Я понятия не имею и буду благодарен за любые предложения, так как это держит меня в течение нескольких дней.
РЕДАКТИРОВАТЬ:
Теперь я знаю, что вызывает это странное поведение, но я до сих пор не знаю, почему это может быть.ViewController, в котором будет отображаться PageView, анимируется в виде (простой блок анимации для перемещения viewController на экран).Если убрать анимацию, все нормально.Я понятия не имею, почему.
Вот немного больше кода (не уверен, поможет ли это прояснить).Это viewController, где я инициализирую представление.
- (void)viewDidLoad {
[super viewDidLoad];
if (self.currentPageView == nil) {
NSLog(@"createPage...");
PageView *cpv = [[PageView alloc] init];
self.currentPageView = cpv;
[cpv release];
[self.view addSubview:currentPageView.view];
}
[self loadContentsFromTXTFile];
[currentPageView setTitle:title
date:date
text:text ];
}
Это инициализация класса PageView:
-(id)init {
//self = [super initWithNibName:nil bundle:nil];
self = [super initWithFrame:CGRectZero];
if (self) {
[[NSBundle mainBundle] loadNibNamed:@"PageView" owner:self options:nil];
[self addSubview:self.view];
}
return self;
}
-(void)setTitle:(NSString *)title date:(NSString *)date text:(NSString *)text {
UILabel *mytitle = [self titleOfPage];
[mytitle setText:title];
UILabel *mydate = [self dateOfPage];
[mydate setText:date];
UITextView *mytext = [self textOfPage];
[mytext setText:text];
}