iOS tips 에세이
정의할 때 사용하는 strong weak copy assign 등
/**
copy : NSString\NSMutableString\block
weak : \UI
strong : OC
assign : (int\float)\ \
*/
프록시 (delegate) 는 weak, delegate를 사용합니다. @property(nonatomic,weak) id delegate;bool 형식은 assign을 사용합니다. @property(nonatomic,assign) bool xxx ;NSString 은 copy 를 사용합니다. @property(nonatomic,copy) NSString * xxx;UI 컨트롤은 weak:weak으로 약한 바늘이고,alloc를 사용할 때 강한 바늘로 그를 가리켜야 합니다.예를 들어, (@property(nonatomic, weak) UIlable *xxx, UILable *xxx = [[UILable alloc] init]; [self.contentView addSubview:xxx]; self.xxx = xxx;)NSArray와 NSMutableArray는 strong, @property(nonatomic, strong) NSArray * xxx를 사용합니다.대상 형식 (class) 은strong을 사용합니다.CGRect는 assign,readonly를 사용합니다.@property(nonatomic,assign,readonly) CGRect xxx ;NSOperationQueue는 strong을 사용합니다. @property(nonatomic,strong) NSOperationQueue * xxx ;——————————————————————————————————————————————————————————————————————————————
하위 컨트롤 추가
[self.contentView addSubview:xxxView]——————————————————————————————————————————————————————————————————————————————
지연 애니메이션 (gcd 구현)
지연 애니메이션 dispatchafter(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(<#delayInSeconds#> * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ <#code to be executed after a specified delay#>});-(void) awake From Nib {}xib 파일을 불러온 후에 실행하는 방법-------------------------------------------------------------------------------------------
주 화면 너비 가져오기
[UIScreen mainScreen].bounds.size.width; 메인 화면의 넓이. ----------------------------------------------------------------
xib 컨트롤 가져오기
xib는class에 선을 끌면 @interface MJAPPCell () @end () --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
메모 사전 처리 테스트
#define MJLog(…) NSLog(__VA_ARGS__)——————————————————————————————————————————————————————————————————————————————
UIApplication
UIApplication에는 기능이 매우 강한 OpenURL이 있다. 방법-(BOOL) OpenURL: (NSURL*) URL;openURL: 방법의 일부 기능은 UIApplication*app = [UIApplication sharedApplication]에 전화하는 것입니다.[app openURL:[NSURL URLWithString:@"tel://10086"];문자 보내기 [app openURL:[NSURL URL WithString:@"sms://10086"];메일 보내기 [app openURL:[NSURL URL WithString:@"mailto://[email protected]"];웹 에셋 열기 [app openURL:[NSURL URL WithString:@"http://ios.itcast.cn]; 다른 앱 프로그램 열기
———————————————————————————————————————————————————————
UISwitch 및 텍스트 상자 변경 수신
1. UISwitch* UISwitch는 UIControl에서 계승되기 때문에 UIButton처럼 일부 사건을 감청할 수 있다. 예를 들어 상태변경 사건* UISwitch는 드래그를 통해 상태변경을 감청할 수 있다. * UISwitch는addTarget를 통해 감청할 수 있다.방법 감청 상태 변경 - (void)addTarget: (id) target action: (SEL) action for Control Events: (UIControl Events) control Events;//여기서 control Events 매개 변수는 다음과 같습니다. UIControl EventValueChanged(값 변경 이벤트)
/**
* switch ,
*/
- (IBAction)rememberPwdChanged {
if (self.rememberPwdSwitch.isOn == NO) { //on getter isOn, :
// self.autoLoginSwitch.on = NO; //@property(nonatomic,getter=isOn) BOOL on;
[self.autoLoginSwitch setOn:NO animated:YES]; // duang
}
}
- (IBAction)autoLoginChanged {
if (self.autoLoginSwitch.isOn) {
// self.rememberPwdSwitch.on = YES;
[self.rememberPwdSwitch setOn:YES animated:YES];
}
}
2. 텍스트 상자의 텍스트 변경을 감청* 한 텍스트 입력 상자의 텍스트 변경을 감청할 때 텍스트 입력 상자는 UITExtFieldTextDidChangeNotification 알림*을 감청함으로써 텍스트 입력 상자의 텍스트 변경을 감청합니다 [[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChange)name: UITExtFieldTextDidChangeNotification object:textField]//textField 텍스트 입력 상자의 텍스트가 바뀌면self의 textChange 방법을 호출합니다
———————————————————————————————————————————————————————
키보드 숨기기
방법1://1, 키보드 [[[UIApplication sharedApplication] keyWindow] endEditing: YES]를 닫습니다.
//[self.view endEditing:YES];
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.view endEditing:YES];
}
방법2://2, 키보드 닫기
//[self.xxx resignFirstResponder];//누가 호출한 키보드, 누가 종료(첫 번째 응답자가 아닌)[[self findFirst Responder Beneath View:self] resign First Responder];
- (IBAction)endKeyboard; //
- (IBAction)endKeyboard {
[[[UIApplication sharedApplication] keyWindow] endEditing:YES];
}
마찬가지로 키보드를 호출하고 싶을 때 공간을 첫 번째 응답자로 만들기(becomeFirstResponder)
[self.xxx becomeFirstResponder];
———————————————————————————————————————————————————————
테이블 뷰 분할선 숨기기
//tableview 분할선 숨기기self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
———————————————————————————————————————————————————————
아카이브 가져오기 파일 경로
//파일 경로 #define tao Contacts Filepath [NSSearch Path ForDirectories InDomains(NSDocument Directory, NSUser Domain Mask, YES) lastObject] stringBy Appending Path Component: @ "contacts.data"]
———————————————————————————————————————————————————————
Modal 사용
1. 점프:
[self presentViewController:nav animated:YES completion:^{
NSLog(@" TwoViewController .......");
}];
2. 점프:
[self dismissViewControllerAnimated:YES completion:^{
NSLog(@" TwoViewController....");
}];
———————————————————————————————————————————————————————
네트워크 액세스 공통 코드 형식
NSURL *url = nil;
NSURLRequest *requst = [NSURLRequest requestWithURL:url cachePolicy:0 timeoutInterval:10.0f];
// , ,
[NSURLConnection sendAsynchronousRequest:requst queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
// data
// data
//
dispatch_async(dispatch_get_main_queue(), ^{
// UI
});
}];
———————————————————————————————————————————————————————
버전 지정
[[UIDevice currentDevice].systemVersion floatValue] >= 7.0;
———————————————————————————————————————————————————————
버튼 크기를 버튼 글꼴로 계산하는 크기
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *writePravateMessage = [[UIButton alloc] init];
[writePravateMessage setTitle:@" " forState:UIControlStateNormal];
[writePravateMessage setTitleColor:[UIColor orangeColor] forState:UIControlStateNormal];
[writePravateMessage setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
writePravateMessage.titleLabel.font = [UIFont systemFontOfSize:15];
writePravateMessage.backgroundColor = [UIColor greenColor];
//
//writePravateMessage.size = [writePravateMessage.currentTitle
sizeWithFont:writePravateMessage.titleLabel.font];
writePravateMessage.size = [self
sizeWithFontOrAttributes:writePravateMessage.titleLabel.font
buttonVc:writePravateMessage.currentTitle];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]
initWithCustomView:writePravateMessage];
}
/**
iOS7 sizeWithAttributes, sizeWithFont
*/
- (CGSize) sizeWithFontOrAttributes:(UIFont *) font buttonVc:(id) obj{
if (iOS7) {
NSDictionary *fontWithAttributes = @{NSFontAttributeName:font};
return [obj sizeWithAttributes:fontWithAttributes];
} else {
return [obj sizeWithFont:font];
}
}
———————————————————————————————————————————————————————
현재 버전
NSString *lastVersion = KCFBundleVersionKey;
———————————————————————————————————————————————————————
UIlable 디스플레이 경계
1. 프레임 추가QuartzCore.framework 2. 도입 헤드 파일 #import "QuartzCore/QuartzCore.h"3.uilable.layer.borderColor = [UIColor lightGrayColor].CGColor; uilable.layer.borderWidth = 2.0;
———————————————————————————————————————————————————————
하나의 컨트롤러가 육안으로 보이지 않는데, 어떤 가능성이 있는가
/*하나의 컨트롤이 육안으로 보이지 않으니 어떤 가능성이 있는가.이 컨트롤을 실례화하지 않았습니다. 2.사이즈를 설정하지 않았습니다. 3.컨트롤의 색깔은 아버지 컨트롤의 배경색과 같다.투명도 알파 <= 0.01 5.hidden = YES 6.부모 컨트롤에 추가되지 않았습니다. 7.다른 컨트롤에 가려졌습니다.위치가 틀리다부모 컨트롤에 이상 상황이 발생했습니다 10.특수한 경우* UIImageView에 이미지 속성이 설정되어 있지 않거나 설정된 이미지 이름이 맞지 않음* UILAbel에 텍스트가 설정되어 있지 않거나 텍스트 색상이 부모 컨트롤의 배경색과 같음* UITExtField에 텍스트가 설정되어 있지 않거나 테두리 스타일이 설정되어 있지 않거나borderStyle * UIPage Control에 전체 페이지 수가 설정되어 있지 않으며 작은 원점이 표시되지 않음* UIButton 내부 이미지 뷰와 title Label의 프레임이 변경되었습니다.또는 imageView와 titleLabel에 내용이 없거나*......컨트롤에 대한 조언 추가하기 (디버깅 기술): 1.배경색과 크기를 설정하는 것이 좋습니다.컨트롤 색상은 가능한 한 부모 컨트롤의 배경색과 같지 않습니다*/
———————————————————————————————————————————————————————
프로그램 시작 시 자동으로 불러오는 그림
/* 1.프로그램 시작은Default라는 그림을 자동으로 불러옵니다. 1 > 3.5inch 비retain 화면:Default.png 2> 3.5inch retina 화면:[email protected]> 4.0inch retain 화면:[email protected] 2.프로그램이 시작될 때 자동으로 불러오는 그림만 4inch retina에서 자동으로 찾을 수 있습니다 [email protected] */
———————————————————————————————————————————————————————
프로그램이 UINavigation Controller를 설정했습니다. scrollview 안의 보기는 모두 아래로 이동하는 픽셀 해결 방법이 있습니다.
//스크롤 보기 삽입self를 자동으로 조정합니다.automaticallyAdjustsScrollViewInsets = NO;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.