2017-11-27 22 views
2

人気のあるアプリがいくつか見られました。 iPhone Plusデバイスと通常のデバイスを比較すると、フォントとイメージが変化します。 iPhone Plusデバイスで少し大きくなりました。私たちのiOSアプリケーションではどうすれば実現できますか?私はすでにスプラッシュ画面を使用していました。しかし、まだフォントは同じで、プラスとノーマルのデバイスに違いはありません。Swiftでプラスデバイスのフォントとサイズを増やすにはどうすればいいですか?

注::解像度を区別してコーディングすると問題はありません。しかし、私は適応的なレイアウトやスクリーンの起動のような他の方法を探しています。

+0

あなたのプロジェクトで大きなフォントを使用して、自動縮尺で行数を設定すると、ラベルのサイズを使ってフォントを縮小します – Tj3n

+1

サイズクラスを使用してアーカイブすることができます –

+0

@SagarBhut 、どのようにサイズクラスで達成する。 – srinadh

答えて

1

インターフェイスビルダー(xibまたはストーリーボード)を使用して実行できます。

ラベルやテキストフィールドなどを選択してにアクセスしてください。

fontの近くにボタンをクリックし、それをクリックしてバリエーション(サイズクラス)を選択し、その特定のサイズのクラスに異なるフォントを設定します。

は、より良く理解するためにスクリーンショットの下に参照してください

enter image description here

参考:例えば、このバリエーションやサイズクラスは、ポートレートモードでのすべてのiPhoneのためであるCompact width, Regular heightについてはSize classes in Interface Builder in Xcode 8

サイズクラスの詳細については、Apple documentationを参照してください。

第2のことは、autoshrinkからminimum font scaleに設定し、そのフォントスケールを0 to 1に設定します。

を入力してから、インターフェースビルダーでより大きなフォント(アプリのプロまたはプロデバイスに表示する最大フォントサイズ)を設定します。今、あなたのアプリが小さなサイズのデバイスで開かれるとき、あなたのフォントサイズはその最小の倍率で縮小しようとします。たとえば、スケールファクタ0.5を設定し、フォントサイズがストーリーボードで100である場合、小型デバイスではラベルまたはテキストフィールドに合わせてフォントサイズを50に縮小しようとします。

enter image description here

+0

w:R h:RはiPhone用ではなく、iPadプロを表します。しかし、私はiPhoneとポートレートモードが必要です。ポートレートモードではなくiPhoneの横長モードのサイズクラスがあります。 – srinadh

+0

w:C、h:Rはポートレートモードのiphone用です! – Lion

+0

w:C、h:RはすべてのiPhoneに共通です。しかし、私の質問は、iPhoneとデバイスのフォントを通常のデバイスと比較してどのようにフォントを増やすことができるかということです。あなたがFacebookや他のアプリのような人気のあるアプリを比較するならば。そのフォントは通常のデバイスよりも少し大きくなります。 – srinadh

1

ただ、各コントローラ用のカスタムクラスを作成します。以下、私はUIButtonのcsutomクラスを作成しています。他のコントロールにも同様に作成することができます。

HSCustomButton.h

#import <UIKit/UIKit.h> 

@interface HSCustomButton : UIButton 

@end 

HSCustomButton.m

#import "HSCustomButton.h" 
#define SCALE_FACTOR_H ([UIScreen mainScreen].bounds.size.height/667) 


@implementation HSCustomButton 

- (id)initWithCoder:(NSCoder *)aDecoder { 
    if((self = [super initWithCoder:aDecoder])){ 
     [self layoutIfNeeded]; 
     [self configurefont]; 
    } 
    return self; 
} 

- (void) configurefont { 
    CGFloat newFontSize = (self.titleLabel.font.pointSize * SCALE_FACTOR_H); 
    self.titleLabel.font = [UIFont fontWithName:self.titleLabel.font.fontName size:newFontSize]; 
} 
@end 

は、ただ、他のすべてのデバイスに対して自動的に、ストーリーボードで、フォントのスケールを、クラス名を変更します。

0

UILabelまたは他のコントロール(UIButton、UITextFieldなど)のカテゴリクラスを作成します。

UILabel + DynamicFontSize。時間

#import <UIKit/UIKit.h> 

@interface UILabel (DynamicFontSize) 
@property (nonatomic) IBInspectable BOOL adjustFontSize; 
@end 

UILabel + DynamicFontSize.m

#import "UILabel+DynamicFontSize.h" 

@implementation UILabel (DynamicFontSize) 
@dynamic adjustFontSize; 
-(void)setAdjustFontSize:(BOOL)adjustFontSize{ 
    if (adjustFontSize) 
    { 
     CGRect screenBounds = [[UIScreen mainScreen] bounds]; 
     self.font = [self.font fontWithSize:self.font.pointSize*(screenBounds.size.width/320)]; // 320 for iPhone 5(320x568) storyboard design 
     // if you design with iphone 6(375x667) in storyboard, use 375 instead of 320 and iphone 6 plus(414x736), use 414 
    } 
    } 
@end 

使用

は、任意のラベルを選択し、[プロパティ名がON

enter image description here

にフォントサイズの変更値を調整して見つけます
関連する問題