1:用xib創建tableview的header,footView的時候,不能準確計算出xib的高度。
解決:自己計算出來,先設置帶有frame的view給header,footView。再設置xib創建出來添加到view上。
UIView *footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH , footViewHeight)];
self.mTableView.tableFooterView = footerView;
self.visaFootView = [AYVisaFootView gainFootViewFromXib];
self.visaFootView.frame = CGRectMake(0, 0, self.mTableView.bounds.size.width, footViewHeight);
[footerView addSubview:self.visaFootView];
2:用reachability判斷網絡連接狀態時,網絡連接變化都會監聽到。(但是在模擬器上會出現不準確的現象)
+ (NSInteger)getNetStatus:(NetworkChangedBlock)block
{
__block NSInteger code = 0;
AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
//當網絡狀態發生變化時會調用這個block
switch (status) {
case AFNetworkReachabilityStatusReachableViaWiFi:
code = 1;
NSLog(@"WiFi");
break;
case AFNetworkReachabilityStatusReachableViaWWAN:
code = 2;
NSLog(@"手機網絡");
break;
case AFNetworkReachabilityStatusNotReachable:
code = -1;
NSLog(@"沒有網絡");
break;
case AFNetworkReachabilityStatusUnknown:
code = 0;
NSLog(@"未知網絡");
break;
default:
break;
}
if (block) {
block(code);
}
}];
[manager startMonitoring];
return code;
}
3:AFN的坑,當網絡連接正常,服務器端異常。服務器回復正常后,APP端還是請求異常。
這是因為AFN緩存了Url的Response;
解決辦法:
[[NSURLCache sharedURLCache] removeAllCachedResponses];
4:xib進行布局需要動畫時,拉出約束,進行約束的更改,用[UIView animateWithDuration:0.2 animations:^{}
進行動畫,在block里面調用,父類view的layoutIfNeeded;記住一定是父類的才會起作用.
5:ios 將連接字符串復制到剪貼板
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
pasteboard.string = str;//->需要復制的字符串
5:swift 數組的快速排序
let array = [3,5,6,1,0]
let res = array.sorted( by: > )
5:設置滾動位置,不影響輸入
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
CGPoint point = [_mScrollView convertPoint:textField.bounds.origin fromView:_viewSplitPay];
CGFloat offsetY = SCREEN_HEIGHT-216.0-64-40-20;
if (SCREEN_WIDTH == 414) {
offsetY = offsetY - 10;
}
[UIView animateWithDuration:.3 animations:^{
_mScrollView.contentOffset = CGPointMake(0, point.y-offsetY);
}];
return YES;
}