iOS開發(fā)小技巧

這里記錄一下平時(shí)使用的一些小技巧(持續(xù)更新中...)

1. 復(fù)制內(nèi)容到剪切板

UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
pasteboard.string = @“testString”; //testString是你要復(fù)制的內(nèi)容

2. 退回到桌面(等同于按Home鍵)

[[UIApplication sharedApplication] performSelector:@selector(suspend)];

3. 遍歷安裝的字體

NSArray *familyNames = [UIFont familyNames];
for (NSString *familyName in familyNames) {
    printf(" ---------- familyNames = %s ----------\n",[familyName UTF8String]);
    NSArray *fontNames = [UIFont fontNamesForFamilyName:familyName];
    for (NSString *fontName in fontNames) {
        printf("\tfontName = %s\n",[fontName UTF8String]);
    }
    printf("\n");
}

4. 設(shè)置屏幕常亮(禁止黑屏)

//oc版本
[[UIApplication sharedApplication] setIdleTimerDisabled:YES]; 
//swift版本
//UIApplication.shared.isIdleTimerDisabled = true; 

5. 禁用暗黑模式

如果想要適配Dark Model請(qǐng)參考我的另一篇文章適配暗黑模式
全局禁用
方法一:在info.plist中

<key>UIUserInterfaceStyle</key>
<string>Light</string>

方法二:
程序啟動(dòng)的時(shí)候讓window的模式設(shè)為一般模式

if (@available(iOS 13.0, *)) {
    [UIApplication sharedApplication].keyWindow.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
}

單個(gè)界面禁用 (這個(gè)會(huì)影響他的子視圖)

self.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;

6.UIScrollView頂部有留白

iOS11之后出現(xiàn)的現(xiàn)象,解決方案

if (@available(iOS 11.0, *)) {
   scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}

7.獲取App當(dāng)前版本

NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
NSString *app_Version = [infoDictionary objectForKey:@"CFBundleShortVersionString"];

8.忽略cocoapods警告

在PodFile文件中添加 inhibit_all_warnings!

platform :ios,'9.0'

#忽略pod產(chǎn)生的警告
inhibit_all_warnings!

target 'YourProjectName' do
  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!
end

9.獲取手機(jī)連接的WiFi名和WiFi地址

首先我們需要導(dǎo)入 #import <SystemConfiguration/CaptiveNetwork.h> 頭文件。
1.獲取WiFi名稱

//獲取SSID(Service Set Identifier):服務(wù)集標(biāo)識(shí),即WiFi網(wǎng)絡(luò)的名稱。
+ (NSString *)getWifiName{
    NSArray *wifiName = CFBridgingRelease(CNCopySupportedInterfaces());
    id info1 = nil;
    for (NSString *wfName in wifiName) {
        info1 = (__bridge_transfer id)CNCopyCurrentNetworkInfo((CFStringRef) wfName);
        if (info1 && [info1 count]) {
            break;
        }
    }
    NSDictionary *dic = (NSDictionary *)info1;
    NSString *ssidName = [[dic objectForKey:@"SSID"] lowercaseString];
    return ssidName;
}

2.獲取WiFi mac地址

//獲取BSSID,即WiFi的mac地址
+ (NSString *)getWifiMacAddress{
    NSArray *wfMac = CFBridgingRelease(CNCopySupportedInterfaces());
    id info1 = nil;
    for (NSString *macName in wfMac) {
        info1 = (__bridge_transfer id)CNCopyCurrentNetworkInfo((CFStringRef) macName);
        if (info1 && [info1 count]) {
            break;
        }
    }
    NSDictionary *dic = (NSDictionary *)info1;
    NSString *wifiMac = [dic objectForKey:@"BSSID"];
    return wifiMac;
}

注意:1. ??????獲取WiFi信息的兩個(gè)方法在iOS12之前可以直接獲取WiFi信息。如果是iOS12之后,我們需要找到 Target —> Capabilities —> Access WiFi Information 并打開這個(gè)選項(xiàng)。詳情請(qǐng)查看 資料 。
2. ??????iOS13之后我們除了打開Access WiFi Information這個(gè)選項(xiàng),我們還需要打開位置權(quán)限,否則也是獲取不到WiFi信息的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容