ios - 使用比率使绘图适合 iPad 和 iPhone
<p><p>我正在尝试使用 <code>UIBezierPath</code> 为 iPad 和 iPhone 设备绘制一个(美式)足球场,绘制 12 条水平线,其中两条标志着端区的开始。 </p>
<p>从下面可以看到,第一行从屏幕的最左侧 (0) 开始,向下 1/12 处,一直水平延伸到 (size.bounds.size.width)。下一行从最左侧开始,但在 View 下方的 2/12 <code>CGPointMake(0, self.bounds.size.height/12 *2 )</code> 等处。以这种方式计算所有 12 行。我想,因为我使用公式(即 self.bounds.size.height/12)而不是硬数字来设置线条,所以无论我在任一设备(iPad 或苹果手机)。 </p>
<p>它在 iPad 上以这种方式工作,但是,当我在 iPhone 上查看它时,它在 iPad 屏幕顶部显示一个端区,但随后仅延伸到底部的 20 码线(纵向 View )。当我在较小的 iPhone 屏幕(3.5 英寸)中查看它时情况更糟,因为它仅延伸到纵向 View 底部的大约 30 码线。 </p>
<p>为什么没有按我计划的方式发生?</p>
<p>更新:下面的代码在 UIView 的子类 FieldView 中的 <code>- (void)drawRect:(CGRect)rect</code> 方法中。我将 UIView 作为属性 <code>@property (strong, nonatomic) IBOutlet FieldView *fieldView;</code> 连接到主视图 Controller ,并在 View 中调用 <code></code> Controller ,以便在 FieldView 中运行 <code>drawRect</code>。</p>
<p>更新 2</p>
<p>这三行的高度是</p>
<pre><code>2014-04-14 21:47:26.783 qbgeo height 85.333336 self.bounds.size.height / 12
2014-04-14 21:47:26.785 qbgeo height 170.666672self.bounds.size.height / 12 * 2
2014-04-14 21:47:26.788 qbgeo height 256.000000self.bounds.size.height / 12 * 3
UIBezierPath *goalLine = [ init];
;
;
[ setStroke];
goalLine.lineWidth = kActivationInset2;
;
UIBezierPath *tenYardLine = [ init];
;
;
[ setStroke];
tenYardLine.lineWidth = kActivationInset2;
;
UIBezierPath *twentyYardLine = [ init];
;
;
[ setStroke];
twentyYardLine.lineWidth = kActivationInset2;
;
</code></pre></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>这段代码对我来说很好用。试一试,看看它在你手中是否有效,</p>
<pre><code>- (void)drawRect:(CGRect)rect {
for (int i =1; i<12; i++) {
UIBezierPath *line = [ init];
;
;
[ setStroke];
line.lineWidth = (i==1 || i==11)? 3 : 1;
;
}
}
</code></pre></p>
<p style="font-size: 20px;">关于ios - 使用比率使绘图适合 iPad 和 iPhone,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/23074661/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/23074661/
</a>
</p>
页:
[1]