我使用iCarousel显示可编辑的问题卡。这些卡片包含一个用于输入问题的UITextView(或者在您滑过填充卡时已经包含文本)。但是,当传送带呈现并滚动时,有时文本视图会显示为空。iCarousel和UITextView的 - 空白文本视图
这是由于没有绘制文本屏幕外的一个UITextView优化。但是UITableView中的文本视图不会因此受到影响。
很多人都知道,使用setNeedsDisplay不会因为优化而工作,所以它不会重绘文本。
我目前通过添加,然后除去1px的改变文本视图的帧。这迫使重绘。但是,我只能在项目更改时执行此操作。 iCarousel没有willDisplayCell委托方法。 (尼克,你能很容易地添加一个?该代码令我感到困惑)
因为iCarousel被预载平滑许多意见(这是必要的,设置iCarouselOptionVisibleItems不能解决任何)似乎没有被我可以做的任何事情,但知道什么时候视图即将在屏幕上。建议?
- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
{
MIQuestionView *questionView = (MIQuestionView *)view;
if (questionView == nil)
{
MIQuestionType type = [self.testSection.questionType integerValue];
questionView = [[MIQuestionView alloc] initWithFrame:CGRectNull questionType:type];
questionView.delegate = self;
}
questionView.question = [self.testSection.questions objectAtIndex:index];
return questionView;
}
文本视图嵌入在MIQuestionView中。文本在问题设置器中设置。我无法知道它何时进入屏幕。要清楚,我不想调整大小。屏幕上显示的文字不是在屏幕外显示并显示为空白。
对不起,我没有看上面暧昧代码:
- (id)initWithFrame:(CGRect)frame questionType:(MIQuestionType)type
{
if (CGRectEqualToRect(frame, CGRectNull))
frame = CGRectMake(0, 0, 650, 244);
self = [super initWithFrame:frame];
...
你能在你的viewForItemAtIndex方法粘贴,所以我可以检查你没有犯任何错误的观点回收?我还没有遇到过这个问题,因为文本字段没有正确调整屏幕之前的大小。 –
更新为包含viewForItemAtIndex。我认为很明确的实现,与UITableView实现内联。问题不在调整。 UITextView不会在屏幕外画文字。 –
问题可能与CGRectNull作为初始框架的使用有关吗? CGRectZero(或实际的非零矩形)可能会更好。 –