Ios 为什么当我将iPhone旋转到横向时,文本会被拉伸?

Ios 为什么当我将iPhone旋转到横向时,文本会被拉伸?,ios,xamarin.ios,Ios,Xamarin.ios,我用Xamarin编写了UIView子体,并重写了Draw方法。 在其他工作人员中,它绘制文本。它在任何屏幕方向看起来都不错,但当我将设备旋转到另一个方向时,文本会拉伸或收缩。 图纸代码为: public override void Draw(CGRect rect) { base.Draw(rect); var ss = new UIStringAttributes(); ss.ForegroundColor = mTextColor; ss.Font = mT

我用Xamarin编写了UIView子体,并重写了Draw方法。 在其他工作人员中,它绘制文本。它在任何屏幕方向看起来都不错,但当我将设备旋转到另一个方向时,文本会拉伸或收缩。 图纸代码为:

public override void Draw(CGRect rect)
{
    base.Draw(rect);
    var ss = new UIStringAttributes();
    ss.ForegroundColor = mTextColor;
    ss.Font = mTextFont;
    ss.ParagraphStyle = new NSMutableParagraphStyle() { Alignment = UITextAlignment.Center };
    using (var g = UIGraphics.GetCurrentContext())
    {
        for (nint i = 0; i < mBars.Length; ++i)
        {
            var r = mBars[i];
            g.SetFillColor(i + 1 == mBars.Length ? mLastBarColor : mBarColor);
            g.FillRect(r);

            var ns = new NSAttributedString(mDataSource[i].Item2, ss);
            var textRect = new CGRect(r.Left, r.Bottom, r.Width, mTextRectHeight);
            ns.DrawString(textRect);
        }
    }
}
public override void Draw(CGRect)
{
基础绘制(rect);
var ss=新的UIStringAttributes();
ss.ForegroundColor=mTextColor;
ss.Font=mTextFont;
ss.ParagraphStyle=新NSMutableParagraphStyle(){Alignment=UITextAlignment.Center};
使用(var g=UIGraphics.GetCurrentContext())
{
对于(第九i=0;i
罗素是对的。我不知道。
必须将其设置为“重画”

在方向改变时不重画图像-因此现有图像会被拉伸/压缩。您只需要强制重新绘制方向change@Russel是的,你说得对!