2016-12-22 11 views
0

テキストサイズに応じて、目まぐるしく変化するラベルサイズを変更しようとしています。取得エラー:enter image description hereCGSizeからSizeFへのタイプの変換

  UILabel addressLabel = new UILabel(); 
      float labelWidth = (float)addressLabel.Frame.Width; 
      SizeF size = ((NSString)addressLabel.Text).StringSize(addressLabel.Font, constrainedToSize: new SizeF(labelWidth, 100), 
        lineBreakMode: UILineBreakMode.WordWrap); 
      var labelFrame = addressLabel.Frame; 
      labelFrame.Size = new SizeF(labelWidth, size.Height); 
      addressLabel.Frame = labelFrame; 

がどのように私はこれを変換することができますか?

答えて

2

エラー状態として、明示的キャストを使用してCGSizeSizeFに変換できます。この変換がXamarin documentationに存在することを確認できます。

SizeF size = (SizeF)((NSString)addressLabel.Text).StringSize(
       addressLabel.Font, 
                constrainedToSize: new SizeF(labelWidth, 100), 
       lineBreakMode: UILineBreakMode.WordWrap); 

また、手動で変換することもできます。 CGSizeSizeFと同じで、HeightWidthのプロパティを持つことがわかります。 CGSizeは、iOSの型であり、代わりにfloatnfloatを使用しています

CGSize sizeOfString = ((NSString)addressLabel.Text).StringSize(
     addressLabel.Font, 
     constrainedToSize: new SizeF(labelWidth, 100), 
     lineBreakMode: UILineBreakMode.WordWrap); 
SizeF size = new SizeF((float)sizeOfString.Width, (float)sizeOfString.Height); 

注ことなので、手動でfloatへの変換を実行する必要があります。あなたはそれから行うことができますすることです。

関連する問題