- <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="list-arrow" translatesAutoresizingMaskIntoConstraints="NO" id="8VZ-dR-b6z">
|
234
|
|
- <rect key="frame" x="341" y="78" width="24" height="36"/>
|
235
|
|
- </imageView>
|
236
|
|
- <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="赞" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="J3p-B7-gMi">
|
237
|
|
- <rect key="frame" x="70" y="86" width="17" height="20"/>
|
238
|
|
- <fontDescription key="fontDescription" type="system" pointSize="16"/>
|
239
|
|
- <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
240
|
|
- <nil key="highlightedColor"/>
|
241
|
|
- </label>
|
242
|
|
- <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="KVD-Az-tyJ">
|
243
|
|
- <rect key="frame" x="0.0" y="128" width="375" height="64"/>
|
244
|
|
- <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
245
|
|
- <constraints>
|
246
|
|
- <constraint firstAttribute="height" constant="64" id="zcX-3o-C4B"/>
|
247
|
|
- </constraints>
|
248
|
|
- </button>
|
249
|
|
- <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="message-comment" translatesAutoresizingMaskIntoConstraints="NO" id="cgb-6k-KQJ">
|
250
|
|
- <rect key="frame" x="12" y="136" width="48" height="48"/>
|
251
|
|
- <constraints>
|
252
|
|
- <constraint firstAttribute="width" secondItem="cgb-6k-KQJ" secondAttribute="height" id="FhM-W8-0eM"/>
|
253
|
|
- <constraint firstAttribute="width" constant="48" id="Kmf-oj-nfI"/>
|
254
|
|
- </constraints>
|
255
|
|
- </imageView>
|
256
|
|
- <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="list-arrow" translatesAutoresizingMaskIntoConstraints="NO" id="hJe-J2-RpF">
|
257
|
|
- <rect key="frame" x="341" y="142" width="24" height="36"/>
|
258
|
|
- </imageView>
|
259
|
|
- <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="评论" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6fy-0a-WYd">
|
260
|
|
- <rect key="frame" x="70" y="150" width="33" height="20"/>
|
261
|
|
- <fontDescription key="fontDescription" type="system" pointSize="16"/>
|
262
|
|
- <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
263
|
|
- <nil key="highlightedColor"/>
|
264
|
|
- </label>
|
265
|
|
- <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="oLf-Xb-QSv">
|
266
|
|
- <rect key="frame" x="325" y="28" width="8" height="8"/>
|
267
|
|
- <color key="backgroundColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
268
|
|
- <constraints>
|
269
|
|
- <constraint firstAttribute="height" constant="8" id="8PB-CF-AvI"/>
|
270
|
|
- <constraint firstAttribute="width" constant="8" id="WJH-jN-MFb"/>
|
271
|
|
- </constraints>
|
272
|
|
- <userDefinedRuntimeAttributes>
|
273
|
|
- <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
|
274
|
|
- <real key="value" value="4"/>
|
275
|
|
- </userDefinedRuntimeAttribute>
|
276
|
|
- </userDefinedRuntimeAttributes>
|
277
|
|
- </view>
|
278
|
|
- <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="R8U-gK-x5D">
|
279
|
|
- <rect key="frame" x="325" y="92" width="8" height="8"/>
|
280
|
|
- <color key="backgroundColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
281
|
|
- <constraints>
|
282
|
|
- <constraint firstAttribute="height" constant="8" id="pvk-DY-af3"/>
|
283
|
|
- <constraint firstAttribute="width" constant="8" id="y72-go-9Lu"/>
|
284
|
|
- </constraints>
|
285
|
|
- <userDefinedRuntimeAttributes>
|
286
|
|
- <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
|
287
|
|
- <real key="value" value="4"/>
|
288
|
|
- </userDefinedRuntimeAttribute>
|
289
|
|
- </userDefinedRuntimeAttributes>
|
290
|
|
- </view>
|
291
|
|
- <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Qi9-c7-GCt">
|
292
|
|
- <rect key="frame" x="325" y="156" width="8" height="8"/>
|
293
|
|
- <color key="backgroundColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
294
|
|
- <constraints>
|
295
|
|
- <constraint firstAttribute="height" constant="8" id="d1V-XC-UJk"/>
|
296
|
|
- <constraint firstAttribute="width" constant="8" id="wcE-da-Ggi"/>
|
297
|
|
- </constraints>
|
298
|
|
- <userDefinedRuntimeAttributes>
|
299
|
|
- <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
|
300
|
|
- <real key="value" value="4"/>
|
301
|
|
- </userDefinedRuntimeAttribute>
|
302
|
|
- </userDefinedRuntimeAttributes>
|
303
|
|
- </view>
|
304
|
|
- <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LMK-Y1-Qex">
|
305
|
|
- <rect key="frame" x="70" y="63.5" width="305" height="0.5"/>
|
306
|
|
- <color key="backgroundColor" red="0.90588235289999997" green="0.90588235289999997" blue="0.90588235289999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
307
|
|
- <constraints>
|
308
|
|
- <constraint firstAttribute="height" constant="0.5" id="ygP-zr-Y2l"/>
|
|
295
|
+ <constraint firstItem="rWa-ZW-l2r" firstAttribute="centerY" secondItem="FvO-F8-npa" secondAttribute="centerY" id="31J-Kc-V4M"/>
|
|
296
|
+ <constraint firstItem="cYK-SK-9WL" firstAttribute="top" secondItem="FvO-F8-npa" secondAttribute="top" id="43p-Ol-SCA"/>
|
|
297
|
+ <constraint firstItem="vFD-Hf-dPV" firstAttribute="centerY" secondItem="FvO-F8-npa" secondAttribute="centerY" id="FRm-10-cuU"/>
|
|
298
|
+ <constraint firstItem="iqd-Ji-zvi" firstAttribute="centerY" secondItem="FvO-F8-npa" secondAttribute="centerY" id="H7y-qI-qAP"/>
|
|
299
|
+ <constraint firstItem="Mdm-bD-HR2" firstAttribute="centerY" secondItem="FvO-F8-npa" secondAttribute="centerY" id="TtU-kN-5jV"/>
|
|
300
|
+ <constraint firstAttribute="height" constant="64" id="Uhv-Ry-4pQ"/>
|
|
301
|
+ <constraint firstItem="rWa-ZW-l2r" firstAttribute="leading" secondItem="iqd-Ji-zvi" secondAttribute="trailing" constant="8" id="bcO-40-lkC"/>
|
|
302
|
+ <constraint firstItem="vFD-Hf-dPV" firstAttribute="leading" secondItem="Mdm-bD-HR2" secondAttribute="trailing" constant="10" id="c1Q-w8-1iV"/>
|
|
303
|
+ <constraint firstAttribute="trailing" secondItem="rWa-ZW-l2r" secondAttribute="trailing" constant="10" id="f1H-lD-Bhp"/>
|
|
304
|
+ <constraint firstItem="cYK-SK-9WL" firstAttribute="leading" secondItem="FvO-F8-npa" secondAttribute="leading" id="hT5-QW-acn"/>
|
|
305
|
+ <constraint firstAttribute="bottom" secondItem="cYK-SK-9WL" secondAttribute="bottom" id="il0-Dm-SVq"/>
|
|
306
|
+ <constraint firstAttribute="trailing" secondItem="cYK-SK-9WL" secondAttribute="trailing" id="j9y-uz-ARx"/>
|
|
307
|
+ <constraint firstItem="Mdm-bD-HR2" firstAttribute="leading" secondItem="FvO-F8-npa" secondAttribute="leading" constant="12" id="vD8-AI-AAE"/>
|
309
|
308
|
</constraints>
|
310
|
309
|
</view>
|
311
|
|
- <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gIo-ms-963">
|
312
|
|
- <rect key="frame" x="70" y="127.5" width="305" height="0.5"/>
|
313
|
|
- <color key="backgroundColor" red="0.90588235289999997" green="0.90588235289999997" blue="0.90588235289999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
310
|
+ <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Org-mm-8ZH" userLabel="message comment">
|
|
311
|
+ <rect key="frame" x="0.0" y="128" width="375" height="64"/>
|
|
312
|
+ <subviews>
|
|
313
|
+ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="pAl-ew-Vda">
|
|
314
|
+ <rect key="frame" x="0.0" y="0.0" width="375" height="64"/>
|
|
315
|
+ <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
316
|
+ <constraints>
|
|
317
|
+ <constraint firstAttribute="height" constant="64" id="Dnh-NK-K7H"/>
|
|
318
|
+ </constraints>
|
|
319
|
+ </button>
|
|
320
|
+ <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="message-comment" translatesAutoresizingMaskIntoConstraints="NO" id="0Ga-dC-0cj">
|
|
321
|
+ <rect key="frame" x="12" y="8" width="48" height="48"/>
|
|
322
|
+ <constraints>
|
|
323
|
+ <constraint firstAttribute="width" constant="48" id="Hcr-cI-PAb"/>
|
|
324
|
+ <constraint firstAttribute="width" secondItem="0Ga-dC-0cj" secondAttribute="height" id="sQe-Iz-UsK"/>
|
|
325
|
+ </constraints>
|
|
326
|
+ </imageView>
|
|
327
|
+ <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="评论" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="OqS-kg-xEo" userLabel="评论">
|
|
328
|
+ <rect key="frame" x="70" y="22.5" width="33" height="19.5"/>
|
|
329
|
+ <fontDescription key="fontDescription" type="system" pointSize="16"/>
|
|
330
|
+ <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
331
|
+ <nil key="highlightedColor"/>
|
|
332
|
+ </label>
|
|
333
|
+ <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="list-arrow" translatesAutoresizingMaskIntoConstraints="NO" id="de8-5g-YER">
|
|
334
|
+ <rect key="frame" x="341" y="14" width="24" height="36"/>
|
|
335
|
+ </imageView>
|
|
336
|
+ <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Ywg-9R-Fz9">
|
|
337
|
+ <rect key="frame" x="325" y="28" width="8" height="8"/>
|
|
338
|
+ <color key="backgroundColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
339
|
+ <constraints>
|
|
340
|
+ <constraint firstAttribute="width" constant="8" id="ZOh-7N-i3b"/>
|
|
341
|
+ <constraint firstAttribute="height" constant="8" id="fXX-l3-MG3"/>
|
|
342
|
+ </constraints>
|
|
343
|
+ <userDefinedRuntimeAttributes>
|
|
344
|
+ <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
|
|
345
|
+ <real key="value" value="4"/>
|
|
346
|
+ </userDefinedRuntimeAttribute>
|
|
347
|
+ </userDefinedRuntimeAttributes>
|
|
348
|
+ </view>
|
|
349
|
+ </subviews>
|
|
350
|
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
314
|
351
|
<constraints>
|
315
|
|
- <constraint firstAttribute="height" constant="0.5" id="VfL-Rd-QTP"/>
|
|
352
|
+ <constraint firstItem="OqS-kg-xEo" firstAttribute="centerY" secondItem="Org-mm-8ZH" secondAttribute="centerY" id="14q-Ka-Vk5"/>
|
|
353
|
+ <constraint firstItem="pAl-ew-Vda" firstAttribute="top" secondItem="Org-mm-8ZH" secondAttribute="top" id="2Su-bl-RDw"/>
|
|
354
|
+ <constraint firstItem="Ywg-9R-Fz9" firstAttribute="centerY" secondItem="Org-mm-8ZH" secondAttribute="centerY" id="9LY-bT-Hr2"/>
|
|
355
|
+ <constraint firstAttribute="trailing" secondItem="de8-5g-YER" secondAttribute="trailing" constant="10" id="Aap-8M-fAT"/>
|
|
356
|
+ <constraint firstAttribute="trailing" secondItem="pAl-ew-Vda" secondAttribute="trailing" id="ILI-UR-Vba"/>
|
|
357
|
+ <constraint firstItem="OqS-kg-xEo" firstAttribute="leading" secondItem="0Ga-dC-0cj" secondAttribute="trailing" constant="10" id="JTR-w3-YbN"/>
|
|
358
|
+ <constraint firstAttribute="bottom" secondItem="pAl-ew-Vda" secondAttribute="bottom" id="Klx-LC-YwX"/>
|
|
359
|
+ <constraint firstItem="0Ga-dC-0cj" firstAttribute="centerY" secondItem="Org-mm-8ZH" secondAttribute="centerY" id="NZO-sW-7w8"/>
|
|
360
|
+ <constraint firstItem="de8-5g-YER" firstAttribute="centerY" secondItem="Org-mm-8ZH" secondAttribute="centerY" id="fWR-wS-1FO"/>
|
|
361
|
+ <constraint firstItem="pAl-ew-Vda" firstAttribute="leading" secondItem="Org-mm-8ZH" secondAttribute="leading" id="hUt-K2-O5X"/>
|
|
362
|
+ <constraint firstItem="de8-5g-YER" firstAttribute="leading" secondItem="Ywg-9R-Fz9" secondAttribute="trailing" constant="8" id="lwS-rD-Wv9"/>
|
|
363
|
+ <constraint firstItem="0Ga-dC-0cj" firstAttribute="leading" secondItem="Org-mm-8ZH" secondAttribute="leading" constant="12" id="p4H-7I-g5Q"/>
|
|
364
|
+ <constraint firstAttribute="height" constant="64" id="qf9-lo-sVB"/>
|
316
|
365
|
</constraints>
|
317
|
366
|
</view>
|
318
|
367
|
</subviews>
|
319
|
|
- <color key="backgroundColor" red="0.94117647059999998" green="0.94117647059999998" blue="0.94117647059999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
320
|
|
- <constraints>
|
321
|
|
- <constraint firstItem="PdF-av-quF" firstAttribute="width" secondItem="PdF-av-quF" secondAttribute="height" id="1SJ-Yy-8rF"/>
|
322
|
|
- <constraint firstItem="KVD-Az-tyJ" firstAttribute="leading" secondItem="StI-0Q-fat" secondAttribute="leading" id="1Sn-Ha-d7i"/>
|
323
|
|
- <constraint firstAttribute="trailing" secondItem="KVD-Az-tyJ" secondAttribute="trailing" id="1UZ-ZG-q7u"/>
|
324
|
|
- <constraint firstItem="NEm-bF-yno" firstAttribute="leading" secondItem="T9q-a4-Ugc" secondAttribute="leading" constant="12" id="3CF-yv-4wf"/>
|
325
|
|
- <constraint firstItem="R8U-gK-x5D" firstAttribute="centerY" secondItem="8VZ-dR-b6z" secondAttribute="centerY" id="3Yc-1d-XRV"/>
|
326
|
|
- <constraint firstItem="LMK-Y1-Qex" firstAttribute="leading" secondItem="OGv-b6-6xR" secondAttribute="leading" id="5AB-ql-wr1"/>
|
327
|
|
- <constraint firstItem="NEm-bF-yno" firstAttribute="width" secondItem="NEm-bF-yno" secondAttribute="height" id="5NQ-kl-Eq5"/>
|
328
|
|
- <constraint firstItem="T9q-a4-Ugc" firstAttribute="leading" secondItem="StI-0Q-fat" secondAttribute="leading" id="638-dc-DJj"/>
|
329
|
|
- <constraint firstItem="mre-Tt-F0S" firstAttribute="centerY" secondItem="WTN-Zx-JKR" secondAttribute="centerY" id="7Gh-JK-xlV"/>
|
330
|
|
- <constraint firstItem="hJe-J2-RpF" firstAttribute="leading" secondItem="Qi9-c7-GCt" secondAttribute="trailing" constant="8" id="8cD-ux-8w4"/>
|
331
|
|
- <constraint firstItem="6fy-0a-WYd" firstAttribute="centerY" secondItem="cgb-6k-KQJ" secondAttribute="centerY" id="EAW-Sd-au8"/>
|
332
|
|
- <constraint firstItem="WTN-Zx-JKR" firstAttribute="leading" secondItem="StI-0Q-fat" secondAttribute="leading" id="Ej8-vW-ES1"/>
|
333
|
|
- <constraint firstItem="oLf-Xb-QSv" firstAttribute="centerY" secondItem="mre-Tt-F0S" secondAttribute="centerY" id="Fty-Is-89H"/>
|
334
|
|
- <constraint firstItem="hJe-J2-RpF" firstAttribute="trailing" secondItem="KVD-Az-tyJ" secondAttribute="trailing" constant="-10" id="HLp-UP-zd4"/>
|
335
|
|
- <constraint firstItem="WTN-Zx-JKR" firstAttribute="top" secondItem="StI-0Q-fat" secondAttribute="top" id="Hdq-cw-396"/>
|
336
|
|
- <constraint firstAttribute="trailing" secondItem="gIo-ms-963" secondAttribute="trailing" id="Hfb-BT-Y32"/>
|
337
|
|
- <constraint firstItem="6fy-0a-WYd" firstAttribute="leading" secondItem="cgb-6k-KQJ" secondAttribute="trailing" constant="10" id="IoR-Al-XZl"/>
|
338
|
|
- <constraint firstItem="gIo-ms-963" firstAttribute="bottom" secondItem="T9q-a4-Ugc" secondAttribute="bottom" id="Joq-MV-NEZ"/>
|
339
|
|
- <constraint firstItem="OGv-b6-6xR" firstAttribute="leading" secondItem="PdF-av-quF" secondAttribute="trailing" constant="10" id="K4D-BZ-8ZU"/>
|
340
|
|
- <constraint firstItem="Qi9-c7-GCt" firstAttribute="centerY" secondItem="hJe-J2-RpF" secondAttribute="centerY" id="LUZ-KU-t61"/>
|
341
|
|
- <constraint firstAttribute="trailing" secondItem="LMK-Y1-Qex" secondAttribute="trailing" id="LYk-HD-SVv"/>
|
342
|
|
- <constraint firstItem="OGv-b6-6xR" firstAttribute="centerY" secondItem="PdF-av-quF" secondAttribute="centerY" id="Obx-DC-2Ms"/>
|
343
|
|
- <constraint firstItem="hJe-J2-RpF" firstAttribute="centerY" secondItem="KVD-Az-tyJ" secondAttribute="centerY" id="PGD-Nd-FxL"/>
|
344
|
|
- <constraint firstItem="mre-Tt-F0S" firstAttribute="leading" secondItem="oLf-Xb-QSv" secondAttribute="trailing" constant="8" id="Pgo-iF-JpC"/>
|
345
|
|
- <constraint firstItem="T9q-a4-Ugc" firstAttribute="top" secondItem="WTN-Zx-JKR" secondAttribute="bottom" id="PiP-8o-hlq"/>
|
346
|
|
- <constraint firstItem="J3p-B7-gMi" firstAttribute="centerY" secondItem="NEm-bF-yno" secondAttribute="centerY" id="U2Q-xG-JKb"/>
|
347
|
|
- <constraint firstAttribute="trailing" secondItem="mre-Tt-F0S" secondAttribute="trailing" constant="10" id="Udt-Ur-CYo"/>
|
348
|
|
- <constraint firstItem="cgb-6k-KQJ" firstAttribute="width" secondItem="cgb-6k-KQJ" secondAttribute="height" id="VBI-e4-8KY"/>
|
349
|
|
- <constraint firstItem="NEm-bF-yno" firstAttribute="centerY" secondItem="T9q-a4-Ugc" secondAttribute="centerY" id="VqD-xD-ZFL"/>
|
350
|
|
- <constraint firstItem="NEm-bF-yno" firstAttribute="width" secondItem="NEm-bF-yno" secondAttribute="height" id="WcT-QB-dXH"/>
|
351
|
|
- <constraint firstItem="8VZ-dR-b6z" firstAttribute="leading" secondItem="R8U-gK-x5D" secondAttribute="trailing" constant="8" id="Zm2-DB-9qE"/>
|
352
|
|
- <constraint firstItem="LMK-Y1-Qex" firstAttribute="bottom" secondItem="WTN-Zx-JKR" secondAttribute="bottom" id="hKb-bb-8Re"/>
|
353
|
|
- <constraint firstItem="8VZ-dR-b6z" firstAttribute="trailing" secondItem="T9q-a4-Ugc" secondAttribute="trailing" constant="-10" id="hTL-Jt-Om6"/>
|
354
|
|
- <constraint firstItem="J3p-B7-gMi" firstAttribute="leading" secondItem="NEm-bF-yno" secondAttribute="trailing" constant="10" id="he6-3z-Xta"/>
|
355
|
|
- <constraint firstItem="cgb-6k-KQJ" firstAttribute="leading" secondItem="KVD-Az-tyJ" secondAttribute="leading" constant="12" id="hek-US-nb3"/>
|
356
|
|
- <constraint firstAttribute="trailing" secondItem="WTN-Zx-JKR" secondAttribute="trailing" id="hyd-J3-IAR"/>
|
357
|
|
- <constraint firstItem="cgb-6k-KQJ" firstAttribute="width" secondItem="cgb-6k-KQJ" secondAttribute="height" id="lpl-IR-20q"/>
|
358
|
|
- <constraint firstItem="cgb-6k-KQJ" firstAttribute="width" secondItem="cgb-6k-KQJ" secondAttribute="height" id="oTf-HF-3EN"/>
|
359
|
|
- <constraint firstAttribute="trailing" secondItem="T9q-a4-Ugc" secondAttribute="trailing" id="qPZ-lF-bJJ"/>
|
360
|
|
- <constraint firstItem="gIo-ms-963" firstAttribute="leading" secondItem="J3p-B7-gMi" secondAttribute="leading" id="s1V-MK-hGp"/>
|
361
|
|
- <constraint firstItem="8VZ-dR-b6z" firstAttribute="centerY" secondItem="T9q-a4-Ugc" secondAttribute="centerY" id="vww-WS-1e6"/>
|
362
|
|
- <constraint firstItem="PdF-av-quF" firstAttribute="leading" secondItem="StI-0Q-fat" secondAttribute="leading" constant="12" id="wD2-zK-Qfe"/>
|
363
|
|
- <constraint firstItem="cgb-6k-KQJ" firstAttribute="centerY" secondItem="KVD-Az-tyJ" secondAttribute="centerY" id="wow-yY-0cl"/>
|
364
|
|
- <constraint firstItem="KVD-Az-tyJ" firstAttribute="top" secondItem="T9q-a4-Ugc" secondAttribute="bottom" id="yi0-UM-hgK"/>
|
365
|
|
- <constraint firstItem="PdF-av-quF" firstAttribute="centerY" secondItem="WTN-Zx-JKR" secondAttribute="centerY" id="zfd-Gi-l2q"/>
|
366
|
|
- </constraints>
|
367
|
|
- </view>
|
|
368
|
+ </stackView>
|
368
|
369
|
</subviews>
|
369
|
|
- <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
|
370
|
+ <color key="backgroundColor" red="0.94117647058823528" green="0.94117647058823528" blue="0.94117647058823528" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
370
|
371
|
<constraints>
|
371
|
|
- <constraint firstItem="pk7-RT-o9s" firstAttribute="trailing" secondItem="StI-0Q-fat" secondAttribute="trailing" id="1mB-xr-CQ7"/>
|
372
|
|
- <constraint firstAttribute="bottom" secondItem="StI-0Q-fat" secondAttribute="bottom" id="DhK-nf-Lrh"/>
|
373
|
|
- <constraint firstItem="StI-0Q-fat" firstAttribute="leading" secondItem="pk7-RT-o9s" secondAttribute="leading" id="jFj-Ls-vJb"/>
|
374
|
|
- <constraint firstItem="StI-0Q-fat" firstAttribute="top" secondItem="pk7-RT-o9s" secondAttribute="top" id="xbs-D5-7iw"/>
|
|
372
|
+ <constraint firstItem="vQs-oc-uao" firstAttribute="leading" secondItem="pk7-RT-o9s" secondAttribute="leading" id="WMt-Hu-L7D"/>
|
|
373
|
+ <constraint firstItem="pk7-RT-o9s" firstAttribute="trailing" secondItem="vQs-oc-uao" secondAttribute="trailing" id="qWK-p3-7fO"/>
|
|
374
|
+ <constraint firstItem="vQs-oc-uao" firstAttribute="top" secondItem="pk7-RT-o9s" secondAttribute="top" id="u3B-bZ-94D"/>
|
375
|
375
|
</constraints>
|
376
|
376
|
<viewLayoutGuide key="safeArea" id="pk7-RT-o9s"/>
|
377
|
377
|
</view>
|
378
|
378
|
<connections>
|
379
|
|
- <outlet property="commentBtn" destination="KVD-Az-tyJ" id="TaX-hY-vn2"/>
|
380
|
|
- <outlet property="commentUnreadTip" destination="Qi9-c7-GCt" id="xt8-kU-Ort"/>
|
381
|
|
- <outlet property="sysBtn" destination="WTN-Zx-JKR" id="j7o-gs-BXE"/>
|
382
|
|
- <outlet property="sysUnreadTip" destination="oLf-Xb-QSv" id="K9s-Ru-LqL"/>
|
383
|
|
- <outlet property="thumbupBtn" destination="T9q-a4-Ugc" id="f6h-aq-4F0"/>
|
384
|
|
- <outlet property="thumbupUnreadTip" destination="R8U-gK-x5D" id="Lxs-zK-zAs"/>
|
|
379
|
+ <outlet property="commentBtn" destination="pAl-ew-Vda" id="3S2-SN-tES"/>
|
|
380
|
+ <outlet property="commentUnreadTip" destination="Ywg-9R-Fz9" id="kdE-V6-bFR"/>
|
|
381
|
+ <outlet property="sysBtn" destination="W1B-Rc-piS" id="7RM-xD-0Ix"/>
|
|
382
|
+ <outlet property="sysUnreadTip" destination="veG-mJ-Dsh" id="lsK-b7-GGU"/>
|
|
383
|
+ <outlet property="thumbupBtn" destination="cYK-SK-9WL" id="SpB-pC-x36"/>
|
|
384
|
+ <outlet property="thumbupUnreadTip" destination="iqd-Ji-zvi" id="IDb-6y-Pp4"/>
|
385
|
385
|
</connections>
|
386
|
386
|
</viewController>
|
387
|
387
|
<placeholder placeholderIdentifier="IBFirstResponder" id="13z-ah-xbs" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
388
|
388
|
</objects>
|
389
|
|
- <point key="canvasLocation" x="53.600000000000001" y="28.335832083958024"/>
|
|
389
|
+ <point key="canvasLocation" x="-52" y="-133"/>
|
390
|
390
|
</scene>
|
391
|
391
|
</scenes>
|
392
|
392
|
<resources>
|
|
|
@@ -22,7 +22,7 @@ final class GroupCell: UITableViewCell {
|
22
|
22
|
func setInfo(_ info: GroupItem) {
|
23
|
23
|
groupImageView.setImage(info.group_avatar, placeholder: UIImage(named: "Group\(info.group_default_avatar)"))
|
24
|
24
|
groupNameLabel.text = info.group_name
|
25
|
|
-// createTimeLabel.text = info.created_at
|
|
25
|
+ createTimeLabel.text = info.create_at
|
26
|
26
|
photoNumLabel.text = "有\(info.group_photo_num)张照片"
|
27
|
27
|
}
|
28
|
28
|
}
|
|
|
@@ -32,7 +32,7 @@ final class MineFeedbackViewController: UIViewController {
|
32
|
32
|
/// storyboard button action
|
33
|
33
|
extension MineFeedbackViewController {
|
34
|
34
|
@IBAction func sendFeedBack() {
|
35
|
|
- Toast.showActivity(message: "正在提交")
|
|
35
|
+ Toast.showActivity(message: "正在提交中")
|
36
|
36
|
feedbackAPI.submit(text: textView.text).subscribe(onCompleted: {[weak self] in
|
37
|
37
|
guard let `self` = self else { return }
|
38
|
38
|
Toast.hide()
|
|
|
@@ -28,10 +28,10 @@ class PhotoDetailCommentCell: UITableViewCell {
|
28
|
28
|
}
|
29
|
29
|
|
30
|
30
|
// MARK: init interface
|
31
|
|
- func setInfo(_ data: PhotoCommentItem) {
|
32
|
|
-// headImage.setImageWithNullableURL(data.avatar, placeholderImage: defaultAvatar)
|
33
|
|
- name.text = data.nickname
|
34
|
|
- content.text = data.comment
|
35
|
|
-// time.text = data.create_at.getTimeInfoFromDate()
|
|
31
|
+ func setInfo(_ info: PhotoCommentItem) {
|
|
32
|
+ headImage.setImage(info.avatar, placeholder: UIImage.defaultAvatar)
|
|
33
|
+ name.text = info.nickname
|
|
34
|
+ content.text = info.comment
|
|
35
|
+ time.text = info.create_at
|
36
|
36
|
}
|
37
|
37
|
}
|
|
|
@@ -52,7 +52,7 @@ extension PhotoDetailCoordinator: PhotoDetailListViewModelDelegate {
|
52
|
52
|
func didSelected() {
|
53
|
53
|
let vc = UIStoryboard.photoDetail.instantiateController(PhotoPreviewViewController.self)
|
54
|
54
|
vc.viewModel = shareListViewModel
|
55
|
|
- navigationController.pushViewController(vc, animated: true)
|
|
55
|
+ photoDetailViewController.presentController(vc)
|
56
|
56
|
}
|
57
|
57
|
}
|
58
|
58
|
|
|
|
@@ -47,21 +47,11 @@ final class PhotoPreviewViewController: UIViewController {
|
47
|
47
|
navigationController?.setNavigationBarHidden(false, animated: true)
|
48
|
48
|
}
|
49
|
49
|
|
50
|
|
- @IBAction func download(_ sender: UIButton) {
|
51
|
|
- guard let cell = collectionView.cellForItem(at: IndexPath(item: viewModel.currIndex, section: 0)) as? ImageCell,
|
52
|
|
- let image = cell.photoImage.image else {
|
53
|
|
- // FFToastView.showToast(inView: view, withText: "未检测到图片")
|
54
|
|
- return
|
55
|
|
- }
|
56
|
|
-
|
57
|
|
- UIImageWriteToSavedPhotosAlbum(image, self, #selector(image(_:didFinishSavingWithError:contextInfo:)), nil)
|
58
|
|
- }
|
59
|
|
-
|
60
|
50
|
@objc func image(_ image: UIImage?, didFinishSavingWithError error: NSError?, contextInfo info: UnsafeMutableRawPointer) {
|
61
|
51
|
if error != nil {
|
62
|
|
- // FFToastView.showToast(inView: view, withText: "保存图片失败")
|
|
52
|
+ Toast.show(message: "保存照片失败")
|
63
|
53
|
} else {
|
64
|
|
- // FFToastView.showImageToast(inView: view, withText: "已保存图片到相册", withImage: "提示弹窗-勾")
|
|
54
|
+ Toast.show(message: "已保存照片到相册中", image: UIImage(named: "icon-success"))
|
65
|
55
|
}
|
66
|
56
|
}
|
67
|
57
|
}
|
|
|
@@ -105,6 +95,7 @@ extension PhotoPreviewViewController {
|
105
|
95
|
@IBAction func back() {
|
106
|
96
|
navigationController?.popViewController(animated: true)
|
107
|
97
|
}
|
|
98
|
+
|
108
|
99
|
@IBAction func rotateTheImage(_ sender: UIButton) {
|
109
|
100
|
guard let cell = collectionView.cellForItem(at: IndexPath(item: viewModel.currIndex, section: 0)) as? ImageCell else {
|
110
|
101
|
return
|
|
|
@@ -127,7 +118,16 @@ extension PhotoPreviewViewController {
|
127
|
118
|
}
|
128
|
119
|
}
|
129
|
120
|
|
130
|
|
-
|
|
121
|
+ @IBAction func download(_ sender: UIButton) {
|
|
122
|
+ Toast.showActivity(message: "正在保存照片到相册")
|
|
123
|
+ guard let cell = collectionView.cellForItem(at: IndexPath(item: viewModel.currIndex, section: 0)) as? ImageCell,
|
|
124
|
+ let image = cell.photoImage.image else {
|
|
125
|
+ Toast.show(message: "未检测到照片")
|
|
126
|
+ return
|
|
127
|
+ }
|
|
128
|
+
|
|
129
|
+ UIImageWriteToSavedPhotosAlbum(image, self, #selector(image(_:didFinishSavingWithError:contextInfo:)), nil)
|
|
130
|
+ }
|
131
|
131
|
}
|
132
|
132
|
|
133
|
133
|
// MARK: UICollectionView delegate
|