2種類のラベルを生成する「DCLabel」クラス

四角のラベルと角丸のラベルを生成する「DCLabel」クラスを作成しました。

ラベルを角丸にするため、「QuartzCore」フレームワークを使用しています。

下記よりサンプルとソースコードのダウンロードが行えます。

ダウンロード

使用方法

通常ラベルの生成

1
2
3
4
5
6
7
8
9
10
UILabel *planeLabel = [DCLabel planeLabel:CGRectMake(self.view.center.x - (LABEL_WIDTH / 2),
                                                     self.view.center.y - LABEL_HEIGHT - LABEL_MARGIN_Y,
                                                     LABEL_WIDTH,
                                                     LABEL_HEIGHT)
                                     text:@"Plane Label"
                                     font:LABEL_FONT
                                textColor:[UIColor whiteColor]
                            textAlignment:NSTextAlignmentCenter
                          backgroundColor:[UIColor blackColor]];
[self.view addSubview:planeLabel];

角丸ラベルの生成

1
2
3
4
5
6
7
8
9
10
11
UILabel *roundRectLabel = [DCLabel roundRectLabel:CGRectMake(self.view.center.x - (LABEL_WIDTH / 2),
                                                             self.view.center.y - LABEL_HEIGHT + LABEL_MARGIN_Y,
                                                             LABEL_WIDTH,
                                                             LABEL_HEIGHT)
                                             text:@"Round Rect Label"
                                             font:LABEL_FONT
                                        textColor:[UIColor whiteColor]
                                    textAlignment:NSTextAlignmentCenter
                                  backgroundColor:[UIColor blackColor]
                                    cornerRadious:8.0f];
[self.view addSubview:roundRectLabel];

サンプルソースコード

ViewController.h

1
2
3
4
5
6
#import "DCLabel.h"

#define LABEL_WIDTH    128
#define LABEL_HEIGHT   30
#define LABEL_FONT     [UIFont fontWithName:@"Helvetica" size:12]
#define LABEL_MARGIN_Y 32

ViewController.m

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//通常ラベルの作成
- (void)makePlaneLabel
{
    UILabel *planeLabel = [DCLabel planeLabel:CGRectMake(self.view.center.x - (LABEL_WIDTH / 2),
                                                         self.view.center.y - LABEL_HEIGHT - LABEL_MARGIN_Y,
                                                         LABEL_WIDTH,
                                                         LABEL_HEIGHT)
                                         text:@"Plane Label"
                                         font:LABEL_FONT
                                    textColor:[UIColor whiteColor]
                                textAlignment:NSTextAlignmentCenter
                              backgroundColor:[UIColor blackColor]];
    [self.view addSubview:planeLabel];
}

//角丸ラベルの作成
- (void)makeRoundRectLabel
{
    UILabel *roundRectLabel = [DCLabel roundRectLabel:CGRectMake(self.view.center.x - (LABEL_WIDTH / 2),
                                                                 self.view.center.y - LABEL_HEIGHT + LABEL_MARGIN_Y,
                                                                 LABEL_WIDTH,
                                                                 LABEL_HEIGHT)
                                                 text:@"Round Rect Label"
                                                 font:LABEL_FONT
                                            textColor:[UIColor whiteColor]
                                        textAlignment:NSTextAlignmentCenter
                                      backgroundColor:[UIColor blackColor]
                                        cornerRadious:8.0f];
    [self.view addSubview:roundRectLabel];
}

ソースコード

DCLabel.h

1
2
3
4
5
6
7
8
9
10
#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>

@interface DCLabel : UILabel

#pragma mark - public method
+ (UILabel *)planeLabel:(CGRect)rect text:(NSString *)text font:(UIFont *)font textColor:(UIColor *)textColor textAlignment:(NSTextAlignment)textAlignment backgroundColor:(UIColor *)backgroundColor;
+ (UILabel *)roundRectLabel:(CGRect)rect text:(NSString *)text font:(UIFont *)font textColor:(UIColor *)textColor textAlignment:(NSTextAlignment)textAlignment backgroundColor:(UIColor *)backgroundColor cornerRadious:(CGFloat)cornerRadius;

@end

DCLabel.m

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#import "DCLabel.h"

@implementation DCLabel

// 通常のラベル取得
+ (UILabel *)planeLabel:(CGRect)rect text:(NSString *)text font:(UIFont *)font textColor:(UIColor *)textColor textAlignment:(NSTextAlignment)textAlignment backgroundColor:(UIColor *)backgroundColor
{
    UILabel *label = [DCLabel label:rect
                               text:text font:font textColor:textColor textAlignment:textAlignment
                    backgroundColor:backgroundColor];
    return (label);
}

// 角丸のラベル取得
+ (UILabel *)roundRectLabel:(CGRect)rect text:(NSString *)text font:(UIFont *)font textColor:(UIColor *)textColor textAlignment:(NSTextAlignment)textAlignment backgroundColor:(UIColor *)backgroundColor cornerRadious:(CGFloat)cornerRadius
{
    UILabel *label = [DCLabel label:rect
                               text:text font:font textColor:textColor textAlignment:textAlignment
                    backgroundColor:backgroundColor];
    [[label layer] setCornerRadius:cornerRadius];
    [label setClipsToBounds:YES];
    return (label);
}

//ラベル取得
+ (UILabel *)label:(CGRect)rect text:(NSString *)text font:(UIFont *)font textColor:(UIColor *)textColor textAlignment:(NSTextAlignment)textAlignment backgroundColor:(UIColor *)backgroundColor
{
    UILabel *label = [[UILabel alloc] initWithFrame:rect];
    label.text = text;
    label.font = font;
    label.textColor = textColor;
    label.textAlignment = textAlignment;
    label.numberOfLines = 0;
    label.backgroundColor = backgroundColor;
    return (label);
}

@end

お薦めの参考書

Swiftではじめる iPhoneアプリ開発の教科書 Swift 2 & Xcode 7対応
この参考書の通りに実践サンプルを作成することで、確実に力を養うことができます。サンプルコードもサイトからダウンロード出来るようになっており、特に広告の貼り方などが参考になりました。Swiftで何が出来るかを知ることができ、入門用にお薦めの1冊です。

   このエントリーをはてなブックマークに追加

About

Masaki Hirokawa (@dolice_apps)

デザインエンジニア 廣川政樹の開発ブログ。Objective-Cや Javaなど iPhone/Androidアプリ開発に関する技術情報を掲載しています。

iPhone apps

  • リラックス・ヒーリング(無料)
  • 望みが叶う!引き寄せの法則アプリ(無料)
  • ミステリー - 怖い話や不思議な体験、都市伝説まとめ
  • 浮世絵壁紙 - 美しい日本画ギャラリー(無料)
  • 綺麗な壁紙HD iPhone 7/7 Plus/SE & iPod対応(無料)
  • クールな壁紙HD iPhone 7/7 Plus/SE & iPod対応(無料)

Android apps

  • 浮世絵壁紙 - 美しい日本画ギャラリー
  • 綺麗な高画質壁紙

Objective-C Classes

Tag Cloud

ActionScript(9) ActionScript3(7) Ad(4) Adfurikun(2) AdMob(9) Android(10) Animation(17) AppDelegate(3) ARC(1) ArrayList(1) AVAudioPlayer(4) AVAudioSession(1) AVFoundation(3) Banner(2) Bitmap(1) Camera(4) CGAffineTransform(4) CGBlendMode(2) CGContextRef(1) CGImageRef(1) Classes(44) CLLocationManager(1) ConnectivityManager(1) ContentResolver(1) CoreLocation(2) Delegate(3) Device(7) Display(1) DisplayMetrics(1) Download(101) Facebook(6) Foundation(72) Framework(2) Google Analytics(1) Handler(1) iAd(6) ImageView(1) In-AppPurchase(1) iOS(12) iOS 7(15) iOS 7.1(3) iOS 8(1) iPad(7) iPhone(21) iPhone 6(4) Java(7) JavaScript(2) LINE(4) Localize(1) Magazine(1) MediaStore(1) MFComposeViewController(1) Nend(1) NetworkInfo(1) NSArray(23) NSCalendar(3) NSData(2) NSDate(7) NSDateComponents(2) NSDateFormatter(2) NSDictionary(12) NSEnumerator(1) NSIndexSet(1) NSInteger(6) NSMutableArray(17) NSMutableDictionary(5) NSMutableOrderedSet(7) NSMutableString(4) NSMutableURLRequest(1) NSNotificationCenter(1) NSNumber(1) NSObject(1) NSOrderedSet(7) NSRange(2) NSSelectorFromString(1) NSSet(6) NSString(19) NSTimer(4) NSTimeZone(1) NSURL(7) NSURLConnection(1) NSURLRequest(2) NSUserDefaults(7) NSXMLParser(2) Objective-C(222) PHP(1) Products(14) QuartzCore(3) RSS(2) Runnable(1) Sample(51) Screensaver(9) SDK(2) ShareCompat(1) Social(10) StoreKit(1) Twitter(6) UIAccelerometer(3) UIActionSheet(1) UIActivityIndicator(1) UIActivityIndicatorView(3) UIActivityViewController(1) UIAlertView(5) UIApplication(7) UIButton(4) UIColor(3) UIDatePicker(5) UIDevice(6) UIDeviceOrientation(1) UIEvent(6) UIImage(15) UIImagePickerController(4) UIImageView(12) UIKit(58) UILabel(7) UINavigationBar(4) UINavigationItem(1) UIPasteboard(4) UIScreen(1) UIScrollBar(1) UIScrollView(1) UISlider(3) UIStoryboardSegue(3) UISwitch(1) UITabBar(3) UITableView(4) UITextField(2) UIView(11) UIViewAnimationTransition(1) UIViewController(4) UIWebView(5) WindowManager(1) Xcode(48) Xcode 5(8) Xcode 5.1(2)