スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
このエントリーをはてなブックマークに追加

カスタムビュー作成時のテンプレート(AutoLayout対応)

File's Ownerに対してクラス名を指定します。
カスタムビュー作成時のテンプレート(AutoLayout対応)_1
#import <UIKit/UIKit.h>
@interface HogeView : UIView
@end

#import "HogeView.h"
@interface HogeView ()
@end

@implementation HogeView

/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code
}
*/

- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self commonInit];
}
return self;
}

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

- (void)commonInit {
//対応するnibファイル名は"自身のクラス名.xib"となるように作成する
//ここでは"HogeView.xibとなり、nibファイル内のviewを取得する
NSString *className = NSStringFromClass([self class]);
UIView *subview = [[[NSBundle mainBundle] loadNibNamed:className owner:self options:0] firstObject];
[self addSubview:subview];

//AutoLayout対策
//selfのビューに対してぴったりに張り付くように設定
subview.translatesAutoresizingMaskIntoConstraints = NO;
[self addConstraint:[self pin:subview attribute:NSLayoutAttributeTop]];
[self addConstraint:[self pin:subview attribute:NSLayoutAttributeLeft]];
[self addConstraint:[self pin:subview attribute:NSLayoutAttributeBottom]];
[self addConstraint:[self pin:subview attribute:NSLayoutAttributeRight]];
}

- (NSLayoutConstraint *)pin:(id)item attribute:(NSLayoutAttribute)attribute
{
return [NSLayoutConstraint constraintWithItem:self
attribute:attribute
relatedBy:NSLayoutRelationEqual
toItem:item
attribute:attribute
multiplier:1.0
constant:0.0];
}

@end
スポンサーサイト
このエントリーをはてなブックマークに追加

[iOS]CoreDataにautoincrementされるidを付加する

Attributeにあらかじめ「id(Integer)」を用意しておいてください。
データを追加する度にidが自動で設定されます。
lastInsertIDメソッドで最後に追加したIDの値が取得できます。
[iOS]CoreDataの取得したデータをソートする_1

//ChildInfo.h
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>

@class MotherInfo;

NS_ASSUME_NONNULL_BEGIN

@interface ChildInfo : NSManagedObject

// Insert code here to declare functionality of your managed object subclass
- (NSInteger)lastInsertID;

@end

NS_ASSUME_NONNULL_END

#import "ChildInfo+CoreDataProperties.h"


//ChildInfo.m
#import "ChildInfo.h"

@implementation ChildInfo

- (void)awakeFromInsert {
[super awakeFromInsert];

self.id = [NSNumber numberWithInteger:[self __getMaxID]+1];
}

- (NSInteger)__getMaxID {
if(!self.managedObjectContext)return NSNotFound;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:self.entity.name];

fetchRequest.fetchLimit = 1;
fetchRequest.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"id" ascending:NO]];

NSError *error = nil;

ChildInfo *firstData = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error].firstObject;

return [firstData.id integerValue];
}

- (NSInteger)lastInsertID {
return [self __getMaxID];
}

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

[iOS]CoreDataの取得したデータをソートする

ソートはfetch時の指定以外にも可能です。
取得したデータの「order」値に対して昇順ソートを指定します。
CoreData(画像添付)
[iOS]CoreDataの取得したデータをソートする_1

//このデータはMotherInfoのリレーションシップで一緒に取得したChildInfoデータに対して行いました。
NSArray *childInfos = motherInfo.child_infos.allObjects;
NSSortDescriptor *sortNameDescriptor = [[NSSortDescriptor alloc] initWithKey:@"order" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortNameDescriptor, nil];
NSArray *childInfos_sorted = [childInfos sortedArrayUsingDescriptors:sortDescriptors];


参考URL:Sorting toMany relationship Set in core data
このエントリーをはてなブックマークに追加

[iOS]UIImageに対して単色で色をつける

UIImageのアルファ部分を抜いた画像に単色で色をつけます。
このメソッドはUIImageのCategoryクラスを作り、そこに追加しておくといいです。
pchファイルにimportするのをお忘れないようにしてください。
//UIImageのインスタンスに設定された画像コンテキストに色をつけます。
- (void)setColor:(UIColor *)color
{
UIGraphicsBeginImageContextWithOptions(self.size, NO, 1.0f);


CGRect bounds = CGRectZero;
bounds.size = self.size;
[color set];
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClipToMask(context, bounds, [self CGImage]);
CGContextFillRect(context, bounds);

// 合成した画像を取得する
id result = [self initWithCGImage:UIGraphicsGetImageFromCurrentImageContext().CGImage];
UIGraphicsEndImageContext();
if(!result)NSLog(@"failed in the initializetion of the image.");

if(result)[self verticalReverseImage];
}

//画像を上下反転する
-(void)verticalReverseImage
{
UIGraphicsBeginImageContext(self.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextDrawImage(context, CGRectMake(0, 0, self.size.width, self.size.height), [self CGImage]); //何もしなくても上下反転に描画される
// 合成した画像を取得する
id result = [self initWithCGImage:UIGraphicsGetImageFromCurrentImageContext().CGImage];
UIGraphicsEndImageContext();
if(!result)NSLog(@"failed in the initializetion of the image.");
}


参考URL1:Overlaying a UIImage with a color?
参考URL2:【iPhone】CGContextDrawImageで画像が上下逆に描画されるならUIImageから予め上下反転したイメージを取得すればいいじゃない
このエントリーをはてなブックマークに追加

tag : iOS

[iOS]UINavigationBarの下線を消す


//UINavigationControllerに設置されたUIViewController側にコードを実装します。
//背景画像と影画像を空画像データにすると消えます。
[self.navigationController.navigationBar setBackgroundImage:[UIImage new]
forBarPosition:UIBarPositionAny
barMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setShadowImage:[UIImage new]];



参考URL:How to hide iOS7 UINavigationBar 1px bottom line
このエントリーをはてなブックマークに追加
Translation


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。
プロフィール

チーズくん

Author:チーズくん
個人的メモをただ羅列しています。
twitter:@cheese1038

バロメーター
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。