动态排列模式中的图像 - iOS

时间:2012-12-07 16:20:18

标签: iphone ios cocoa-touch logic

我正在开展一个项目,我有一个时间轴,用户可以点击一个月,然后在弹出窗口中查看该特定月份的奖牌。现在,我希望程序安排奖牌图像(小视觉圈)。应该像这样安排,或类似的东西(我不是特别关注一种特定的格式,但我只是希望它们是对称的):

  1. 1枚奖牌 - 一个小圈子
  2. 2枚奖牌 - 两个并排的圈子
  3. 3枚奖牌 - 三个圆圈,两个并排,一个位于两枚奖牌的中上方
  4. 4枚奖牌 - 形成方形的四个圆圈
  5. 5枚奖牌 - 正方形中的四个圆圈和中上部的第五个圆圈。
  6. 我知道我可能不清楚我的要求,所以如果你需要澄清,请提及。

    我需要逻辑来为奖牌绘制这个或任何其他模式。我正在使用objective-c进行记录

1 个答案:

答案 0 :(得分:1)

你可以这样做:

int nrmedals; //number of medals
CGPoint bottompos; //position of the lower left corner of the rectangle where you want to draw
float padding; //space between medals
float diameter; //diameter of the medals
if (nrmedals%2==0) { //even
    for (int i=0; i<nrmedals; i+=2) {
        draw medal one at position (bottompos.x,bottompos.y+ i/2 * (diameter + padding));
        draw medal two at position (bottompos.x+diameter+padding ,bottompos.y + i/2 * (diameter + padding));

    }

}else {//odd
    for (int i=0; i<nrmedals-1; i+=2) {
        draw medal one at position (bottompos.x,bottompos.y+ i/2 * (diameter + padding));
        draw medal two at position (bottompos.x+diameter+padding ,bottompos.y + i/2 * (diameter + padding));

    }
draw odd medal at position (bottompos.x +diameter/2+padding/2 ,bottompos.y+diameter * (nrmedals-1)/2 +padding);
}

这是基本的想法(当然你可以用变量替换“2”而不是每行2枚奖牌)

计算点数的一些数学可能会关闭