菜鸟教程小白 发表于 2022-12-12 10:23:05

ios - 添加自定义按钮后,UIScrollView 行为不流畅


                                            <p><p>我有一个 UIScrollView,其中有 500 多个自定义按钮,根据用户的要求最多可以达到一千个。实际上,UIButton 的子类。我使用 UIButton 类的原因是我必须在点击时执行一些操作。该对象如下图所示</p>

<p> <img src="/image/bxOa8.png" alt="enter image description here"/> </p>

<p>这些按钮的排列类似于 m*n 矩阵,其中行 (m) 固定为 20,但列 (n) 不固定。可以有 500 列。 </p>

<p>我的问题是添加按钮后,scrollView 的行为不流畅。我使用以下代码创建每个对象</p>

<pre><code>- (id)initWithFrame:(CGRect)frame
{
    self = ;
    if (self) {
      // Initialization code
      sizeLabel = [ initWithFrame:sizeLabelRect];
      sizeLabel.font = ;
      sizeLabel.textAlignment = UITextAlignmentCenter;
//      sizeLabel.backgroundColor = ;
//      sizeLabel.layer.cornerRadius = CORNER_RADIUS;
      ;

      nFilesLabel = [ initWithFrame:nFilesLabelRect];
      nFilesLabel.font = ;
      nFilesLabel.textAlignment = UITextAlignmentCenter;
//      nFilesLabel.backgroundColor = ;
//      nFilesLabel.layer.cornerRadius = CORNER_RADIUS;
      ;

      maxDisimilarity = [ initWithFrame:disimilarityRect];
//      maxDisimilarity.layer.cornerRadius = CORNER_RADIUS;
      ;

//      nFragment = [ init];
//      nFragment.font = ;
//      ;
    }
    return self;
}

/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
    // Drawing code
}
*/

- (void)setObj:(CloneClass *)obj
{
    NSString *colorCode;
    if (obj != nil) {
      _obj = obj;
      if () {
            colorCode = COLOR;
      } else if () {
            colorCode = COLOR;
      } else if () {
            colorCode = COLOR;
      }
      self.backgroundColor = ;
       forState:UIControlStateNormal];

      // set size of clone class
      if (_obj.size &gt; LARGE_SIZE) {
            sizeLabel.text = LARGE_SIZE_TEXT;
      } else if (_obj.size &gt; MEDIUM_SIZE &amp;&amp; _obj.size &lt;= LARGE_SIZE) {
            sizeLabel.text = MEDIUM_SIZE_TEXT;
      } else {
            sizeLabel.text = SMALL_SIZE_TEXT;
      }

      // set number of files within a clone class
      nFilesLabel.text = ;

      // set color for disimilarity
      CGFloat similarity = 1.0 - _cloneClass.maxDisimilarity;
      maxDisimilarity.backgroundColor = ;

    } else {
      self.backgroundColor = ;
      ;
    }

    self.titleLabel.textColor = ;
}
</code></pre>

<p> ScrollView 甚至不适用于 10*10 矩阵。 </p>

<p>提前致谢</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我会研究 <code>UICollectionView</code>。你现在会遇到内存问题。 <code>UICollectionView</code> 允许您创建一个类似于 <code>UITableViewCell</code> 的 <code>UICollectionViewCell</code> 可以重复使用。</p>

<p>见 <a href="http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UICollectionView_class/Reference/Reference.html" rel="noreferrer noopener nofollow">Apple Documentation</a> .</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 添加自定义按钮后,UIScrollView 行为不流畅,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/15940506/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/15940506/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 添加自定义按钮后,UIScrollView 行为不流畅