HHXibHelper - Xcode Pulg In

HHXibHelper - Xcode Pulg In

github地址: https://github.com/xiaoxm/HHXibHelper/

What?

一款Xib輔助工具雷逆,可以在對應.m文件中批量生成property屬性且自動完成連線操作其做。

How?

  1. .xib文件:界面控件布局完成后腊凶,將需要生成property的控件重命名,作為property name谚鄙;
  2. Xcode菜單欄找到 Windwo -> HHXibHelper 單擊,調(diào)出HHXibHelper;
  3. 將.m或.xib文件拖入filePath文本框內(nèi)誊涯,獲取文件路徑洪鸭;
  4. 單擊走你~样刷,即可生成property屬性并自動完成連線操作;

Verson

v1.0

實現(xiàn)原理篇

.xib文件右鍵 Open As -> Source Code 打開源代碼觀察览爵,摘錄部分代碼如下:

...
                <subviews>
                    <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="hFI-g2-bIc" userLabel="iconIV">
                        <rect key="frame" x="15" y="17" width="82" height="82"/>
                    </imageView>
                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="erf-m2-Vxb" userLabel="titleL">
                        <rect key="frame" x="118" y="17" width="42" height="21"/>
                        <fontDescription key="fontDescription" type="system" pointSize="17"/>
                        <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                        <nil key="highlightedColor"/>
                    </label>
                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vkQ-Uo-8fK" userLabel="descL">
                        <rect key="frame" x="118" y="58" width="42" height="21"/>
                        <fontDescription key="fontDescription" type="system" pointSize="17"/>
                        <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                        <nil key="highlightedColor"/>
                    </label>
                    <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6cH-um-Beo" userLabel="btn">
                        <rect key="frame" x="256" y="43" width="46" height="30"/>
                        <state key="normal" title="Button"/>
                    </button>
                </subviews>

...

            <connections>
                <outlet property="btn" destination="6cH-um-Beo" id="enz-ri-1Dn"/>
                <outlet property="descL" destination="vkQ-Uo-8fK" id="BXc-sN-Ex9"/>
                <outlet property="iconIV" destination="hFI-g2-bIc" id="L5f-1D-Ivo"/>
                <outlet property="titleL" destination="erf-m2-Vxb" id="baV-5g-sJE"/>
            </connections>
...

在無數(shù)次的拖拽與觀察中做出如下假設:
  • <subviews>標簽下置鼻,每一個<imageView><label>標簽對應著一個子控件蜓竹。如果有過重命名操作箕母,會生成一個userLabel屬性;
  • <connections>標簽下俱济,每一個<outlet>標簽對應一條連線嘶是;
  • <outlet>的property屬性對應.m文件連線property name;
  • <outlet>的destination屬性對應連線子控件的id蛛碌;
這樣一來Xcode的拖線操作就可以這么理解:
  • 在.h或者.m文件中生成了一條IBOutlet property屬性聂喇;
  • 在.xib文件中的<connections>標簽下生成了一條outlet記錄;
于是乎,就有了HHXibHelper蔚携,它做如下操作:
  • 獲取文件路徑希太;
  • 打開.xib文件,找出存在userLabel屬性的控件酝蜒,然后生成outlet記錄;
  • 打開.m文件跛十,生成對應IBOutlet property屬性;
  • 實現(xiàn)批量連線秕硝。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末芥映,一起剝皮案震驚了整個濱河市洲尊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌奈偏,老刑警劉巖坞嘀,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異惊来,居然都是意外死亡丽涩,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進店門裁蚁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來矢渊,“玉大人,你說我怎么就攤上這事枉证“校” “怎么了?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵室谚,是天一觀的道長毡鉴。 經(jīng)常有香客問我,道長秒赤,這世上最難降的妖魔是什么猪瞬? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮入篮,結(jié)果婚禮上陈瘦,老公的妹妹穿的比我還像新娘。我一直安慰自己潮售,他們只是感情好痊项,可當我...
    茶點故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著饲做,像睡著了一般线婚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上盆均,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天塞弊,我揣著相機與錄音,去河邊找鬼泪姨。 笑死游沿,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的肮砾。 我是一名探鬼主播诀黍,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼仗处!你這毒婦竟也來了眯勾?” 一聲冷哼從身側(cè)響起枣宫,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎吃环,沒想到半個月后也颤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡郁轻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年翅娶,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片好唯。...
    茶點故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡竭沫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出骑篙,到底是詐尸還是另有隱情蜕提,我是刑警寧澤,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布替蛉,位于F島的核電站贯溅,受9級特大地震影響拄氯,放射性物質(zhì)發(fā)生泄漏躲查。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一译柏、第九天 我趴在偏房一處隱蔽的房頂上張望镣煮。 院中可真熱鬧,春花似錦鄙麦、人聲如沸典唇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽介衔。三九已至,卻和暖如春骂因,著一層夾襖步出監(jiān)牢的瞬間炎咖,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工寒波, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留乘盼,地道東北人。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓俄烁,卻偏偏與公主長得像绸栅,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子页屠,可洞房花燭夜當晚...
    茶點故事閱讀 45,747評論 2 361

推薦閱讀更多精彩內(nèi)容