菜鸟教程小白 发表于 2022-12-13 05:32:45

ios - iPhone 4 iOS 7 Tableview 滚动时滞后


                                            <p><p>我的 UITableview 出现延迟问题。
iPhone 5 上没有任何问题,并且在我开始在 NSDictionary 中缓存图像后,带有 iOS 6 的 iPhone 4 变得非常敏感。
但是,问题仍然存在于装有 iOS 7 的 iPhone 4 上。</p>

<p>我在这里阅读了一些关于使 View 不透明的提示,但没有帮助。除了标签之外,我的所有 View 都是不透明的(因为如果它们不透明,它们就会填充,这对我的目的不起作用)</p>

<p>我确实从 Storyboard 中加载了背景图片,你们知道这是否会影响性能吗? Storyboard在加载图像时效率低吗?</p>

<p>您还有其他提高 UITableView 性能的技巧吗?</p>

<p>提前致谢!</p>

<p>请求的一些代码,这些是单元格上的元素:<a href="http://imgur.com/Dcif6QE" rel="noreferrer noopener nofollow">http://imgur.com/Dcif6QE</a> </p>

<pre><code>- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
HomeListCell *cell;

if()
{
    static NSString *CellIdentifier = @&#34;HomeListCell&#34;;
    cell = ;

    cell.userInteractionEnabled = YES;
    cell.event = ;
    cell.parent = self;

    if( != 0)
    {
      Event_Type *eventType = ;
      NSString *imageName = @&#34;HomeList_Type&#34;;
      imageName = ;
      cell.eventTypeImage.image = ;
    }

    //Laad de images hier uit de cache om scroll performance te verbeteren
    int score = ;
    ;
    if(score &gt; 0)
    {
      cell.ratingImage.image = ;
    }
    else if(score == 0)
    {
      cell.ratingImage.image = nil;
      ;
    }
    else
    {
      cell.ratingImage.image = ;
      score = -score;
    }
    cell.ratingNumber.text = ;

    ;
}
</code></pre>

<p>而 styleSelf 有这样的代码:</p>

<pre><code>-(void) styleSelf {
LocationManager *locationManager = ;

//Tekens die verandert moeten worden
NSCharacterSet *notAllowedY = ;
NSString *resultString = [ componentsJoinedByString:@&#34;y&#34;];

//Afstand berekening
double eventLong = ;
double eventLat = ;
CLLocation* locatie = [initWithLatitude:eventLat longitude:eventLong];

//Date + time
NSString *eventDate = event.opening;
eventDate = ;
NSDate *theDate;
NSDateFormatter *dateFormatter = [init];

if()
{
    ;
    ];
    theDate = ;
}
else
{
    ;
    theDate = ;
}
;
self.timeNumberLabel.text = ;
self.timeNumberAfscheurLabel.text = ;

;
if ([ isEqualToString:]])
{
    self.timeWhenLabel.text = NSLocalizedString(@&#34;HomeList-Vandaag&#34;, nil);
    self.timeWhenAfscheurLabel.text = NSLocalizedString(@&#34;HomeList-Vandaag&#34;, nil);
}
else
{
    ;
    NSString *maand = ;
    NSString *monthName = NSLocalizedString([@&#34;Maand-&#34; stringByAppendingString: maand], nil);
    ;
    NSString *dag = ;

    NSString *DatumString = [stringByAppendingString:monthName];

    self.timeWhenLabel.text = [@&#34;&#34; stringByAppendingString:DatumString];
    self.timeWhenAfscheurLabel.text = [@&#34;&#34; stringByAppendingString:DatumString];
}

//De cell vormen of de user gaat of niet
if( == 0)
{
    ;
    ;
    ;
}
else
{
    ;
    ;
    ;
}

self.event.userDistance = ;
if()
{
    self.distanceNumberLabel.text = NSLocalizedString(@&#34;Extras-GPS&#34;, nil);
    self.distanceTypeLabel.text = NSLocalizedString(@&#34;Extras-UIT&#34;, nil);
    self.distanceNumberLabel.textColor = ;
    self.distanceTypeLabel.textColor = ;
}
else
{
    NSString *placehold = self.event.userDistance;
    placehold = ;
    self.distanceNumberLabel.text = placehold;
    self.distanceTypeLabel.text = NSLocalizedString(@&#34;Extras-Km&#34;, nil);
    self.distanceNumberLabel.textColor = ;
    self.distanceTypeLabel.textColor = ;
}

// Configure the cell...
self.titleLabel.text = resultString;
self.tagsLabel.text = ;
</code></pre>

<p>}</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>你的罪魁祸首是 <code>NSDateFormatter</code>。这是一个要创建的超重对象。您应该在某处创建它的单个版本并重复使用它,自由设置属性(格式、时区等)。</p>

<p>使用 Instruments -> Time Profiler 来准确查看哪些方法占用了主线程上的时间也是一个好主意。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - iPhone 4 iOS 7 Tableview 滚动时滞后,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/20144626/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/20144626/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - iPhone 4 iOS 7 Tableview 滚动时滞后