Browse Source

Misc changes

master
Dwayne Harris 6 years ago
parent
commit
c9a700c777
  1. 10
      elpha-ios.xcodeproj/project.pbxproj
  2. 2
      elpha-ios/AbstractStatusTableViewController.swift
  3. 84
      elpha-ios/AccountTableViewController.swift
  4. 39
      elpha-ios/Base.lproj/Main.storyboard
  5. 20
      elpha-ios/SettingsTableViewController.swift
  6. 39
      elpha-ios/StatusTableViewController.swift
  7. 25
      elpha-ios/StatusView.swift
  8. 48
      elpha-ios/StatusView.xib

10
elpha-ios.xcodeproj/project.pbxproj

@ -351,6 +351,14 @@
name = "Abstract View Controllers";
sourceTree = "<group>";
};
1562EEB121AB46DF003A2DCD /* Views */ = {
isa = PBXGroup;
children = (
15CF7243219282AF00E6BF19 /* UITextViewFixed.swift */,
);
name = Views;
sourceTree = "<group>";
};
15637095219FE22E00D51D42 /* Products */ = {
isa = PBXGroup;
children = (
@ -423,7 +431,6 @@
15960E6E21321FA500C38CE9 /* Elpha.xcdatamodeld */,
15960E5A213145E100C38CE9 /* AppDelegate.swift */,
15960E7621322C6F00C38CE9 /* Configuration.swift */,
15CF7243219282AF00E6BF19 /* UITextViewFixed.swift */,
156FF05621779C140074D9CA /* API */,
151AD4AF2166DDA000F07403 /* Extensions */,
15960E7121322B9F00C38CE9 /* Keychain Helper */,
@ -433,6 +440,7 @@
152FBCE4219789450079B3E8 /* Abstract View Controllers */,
15960E782132383600C38CE9 /* View Controllers */,
151AD4AE2166DD3500F07403 /* Table View Cells */,
1562EEB121AB46DF003A2DCD /* Views */,
);
path = "elpha-ios";
sourceTree = "<group>";

2
elpha-ios/AbstractStatusTableViewController.swift

@ -94,7 +94,7 @@ class AbstractStatusTableViewController: UITableViewController, StatusViewDelega
}
cell.statusView.update(withStatus: status)
cell.statusView.topDividerView.isHidden = indexPath.row == 0
cell.statusView.topDividerView.isHidden = false
cell.statusView.topLoadMoreView.isHidden = true
cell.statusView.bottomLoadMoreView.isHidden = true

84
elpha-ios/AccountTableViewController.swift

@ -110,6 +110,8 @@ class AccountTableViewController: AbstractStatusTableViewController {
if let account = account {
updateHeader(withAccount: account)
sizeHeaderToFit()
initializeFetchedResultsController()
}
}
@ -135,6 +137,20 @@ class AccountTableViewController: AbstractStatusTableViewController {
}
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
sizeHeaderToFit()
}
private func sizeHeaderToFit() {
headerView.setNeedsLayout()
headerView.layoutIfNeeded()
// var frame = headerView.frame
// frame.size.height = headerView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).height
// headerView.frame = frame
}
private func updateHeader(withAccount account: AccountMO) {
navigationItem.title = account.displayName
@ -158,7 +174,7 @@ class AccountTableViewController: AbstractStatusTableViewController {
followingLabel.text = NumberFormatter.localizedString(from: NSNumber(value: account.followingCount), number: .decimal)
followersLabel.text = NumberFormatter.localizedString(from: NSNumber(value: account.followersCount), number: .decimal)
if let fields = account.fields {
if let fields = account.fields, fields.count > 0 {
fieldTableViewController!.fields = fields
fieldTableView.dataSource = fieldTableViewController
@ -255,33 +271,33 @@ class AccountTableViewController: AbstractStatusTableViewController {
}
switch statusTypeSegmentedControl.selectedSegmentIndex {
case 1:
MastodonAPI.statuses(
accountID: account.id!,
onlyMedia: false,
excludeReplies: false,
limit: fetchLimit,
pagination: pagination,
completion: requestCompletion
)
case 2:
MastodonAPI.statuses(
accountID: account.id!,
onlyMedia: true,
excludeReplies: true,
limit: fetchLimit,
pagination: pagination,
completion: requestCompletion
)
default:
MastodonAPI.statuses(
accountID: account.id!,
onlyMedia: false,
excludeReplies: true,
limit: fetchLimit,
pagination: pagination,
completion: requestCompletion
)
case 1:
MastodonAPI.statuses(
accountID: account.id!,
onlyMedia: false,
excludeReplies: false,
limit: fetchLimit,
pagination: pagination,
completion: requestCompletion
)
case 2:
MastodonAPI.statuses(
accountID: account.id!,
onlyMedia: true,
excludeReplies: true,
limit: fetchLimit,
pagination: pagination,
completion: requestCompletion
)
default:
MastodonAPI.statuses(
accountID: account.id!,
onlyMedia: false,
excludeReplies: true,
limit: fetchLimit,
pagination: pagination,
completion: requestCompletion
)
}
}
}
@ -297,12 +313,12 @@ extension AccountTableViewController: NSFetchedResultsControllerDelegate {
]
switch statusTypeSegmentedControl.selectedSegmentIndex {
case 1:
request.predicate = NSPredicate(format: "account == %@", account)
case 2:
request.predicate = NSPredicate(format: "account == %@ AND attachments.@count > 0", account)
default:
request.predicate = NSPredicate(format: "account == %@ AND inReplyToID == nil", account)
case 1:
request.predicate = NSPredicate(format: "account == %@", account)
case 2:
request.predicate = NSPredicate(format: "account == %@ AND attachments.@count > 0", account)
default:
request.predicate = NSPredicate(format: "account == %@ AND inReplyToID == nil", account)
}
fetchedResultsController = NSFetchedResultsController(

39
elpha-ios/Base.lproj/Main.storyboard

@ -484,10 +484,10 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<view key="tableHeaderView" contentMode="scaleToFill" id="ygB-F6-Moa">
<rect key="frame" x="0.0" y="0.0" width="375" height="545"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="575"/>
<autoresizingMask key="autoresizingMask" heightSizable="YES"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="0jO-Rb-lcz">
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="0jO-Rb-lcz">
<rect key="frame" x="0.0" y="0.0" width="375" height="150"/>
<constraints>
<constraint firstAttribute="height" constant="150" id="HWQ-9W-TLG"/>
@ -513,7 +513,7 @@
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="D5v-MR-CuQ">
<rect key="frame" x="20" y="427" width="105" height="60"/>
<rect key="frame" x="20" y="457" width="105" height="60"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Toots" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kTz-EN-Zgx">
<rect key="frame" x="8" y="10" width="89" height="14.333333333333336"/>
@ -539,7 +539,7 @@
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TkS-vn-sW3">
<rect key="frame" x="135" y="427" width="105" height="60"/>
<rect key="frame" x="135" y="457" width="105" height="60"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Following" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FxQ-nq-jYw">
<rect key="frame" x="8" y="10" width="89" height="14.333333333333336"/>
@ -565,7 +565,7 @@
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rqF-sG-ZE7">
<rect key="frame" x="250" y="427" width="105" height="60"/>
<rect key="frame" x="250" y="457" width="105" height="60"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Followers" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="piT-tX-tUe">
<rect key="frame" x="8" y="10" width="89" height="14.333333333333336"/>
@ -591,7 +591,10 @@
</constraints>
</view>
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="lwU-IL-uAN">
<rect key="frame" x="10" y="497" width="355" height="29"/>
<rect key="frame" x="10" y="527" width="355" height="29"/>
<constraints>
<constraint firstAttribute="height" constant="28" id="cZ3-wz-DNs"/>
</constraints>
<segments>
<segment title="Toots"/>
<segment title="Toots &amp; Replies"/>
@ -603,10 +606,10 @@
</connections>
</segmentedControl>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="deT-ms-U3E">
<rect key="frame" x="0.0" y="254" width="375" height="158"/>
<rect key="frame" x="0.0" y="254" width="375" height="188"/>
<subviews>
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" scrollEnabled="NO" editable="NO" text="Note" textAlignment="center" translatesAutoresizingMaskIntoConstraints="NO" id="7EZ-R5-qfQ" customClass="UITextViewFixed" customModule="elpha_ios" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="375" height="46.333333333333336"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="76.333333333333329"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="Secondary"/>
<color key="textColor" name="Text"/>
@ -615,7 +618,7 @@
<dataDetectorType key="dataDetectorTypes" phoneNumber="YES" link="YES" address="YES" calendarEvent="YES" shipmentTrackingNumber="YES" flightNumber="YES" lookupSuggestion="YES"/>
</textView>
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" dataMode="prototypes" style="plain" separatorStyle="default" allowsSelection="NO" rowHeight="40" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="LkG-MC-taI">
<rect key="frame" x="0.0" y="46.333333333333321" width="375" height="111.66666666666669"/>
<rect key="frame" x="0.0" y="76.333333333333314" width="375" height="111.66666666666669"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<inset key="separatorInset" minX="5" minY="0.0" maxX="0.0" maxY="0.0"/>
<prototypes>
@ -696,7 +699,7 @@
</view>
<prototypes>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="AccountTableViewCell" id="nLQ-4Q-SwI" customClass="AccountTableViewCell" customModule="elpha_ios" customModuleProvider="target">
<rect key="frame" x="0.0" y="573" width="375" height="44"/>
<rect key="frame" x="0.0" y="603" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="nLQ-4Q-SwI" id="y0d-Ka-W2g">
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
@ -900,7 +903,7 @@
</constraints>
</tableViewCellContentView>
</tableViewCell>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" id="VSP-oq-u7i">
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="none" indentationWidth="10" id="VSP-oq-u7i">
<rect key="frame" x="0.0" y="291" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="VSP-oq-u7i" id="Fxa-bc-hk1">
@ -930,7 +933,7 @@
</constraints>
</tableViewCellContentView>
</tableViewCell>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" id="h71-4T-hjk">
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="none" indentationWidth="10" id="h71-4T-hjk">
<rect key="frame" x="0.0" y="335" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="h71-4T-hjk" id="elQ-iL-6A9">
@ -951,7 +954,7 @@
</constraints>
</tableViewCellContentView>
</tableViewCell>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" id="buH-Mv-FHu">
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="none" indentationWidth="10" id="buH-Mv-FHu">
<rect key="frame" x="0.0" y="379" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="buH-Mv-FHu" id="Xya-rO-5Dy">
@ -1425,10 +1428,10 @@
</connections>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bsb-4z-qCl">
<rect key="frame" x="0.0" y="150" width="375" height="40"/>
<rect key="frame" x="0.0" y="150" width="375" height="415"/>
<subviews>
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" scrollEnabled="NO" editable="NO" text="Content" textAlignment="natural" translatesAutoresizingMaskIntoConstraints="NO" id="Qno-L9-nUh" customClass="UITextViewFixed" customModule="elpha_ios" customModuleProvider="target">
<rect key="frame" x="8" y="8" width="359" height="24"/>
<rect key="frame" x="8" y="8" width="359" height="399"/>
<color key="backgroundColor" name="Background Primary"/>
<color key="tintColor" name="Primary"/>
<color key="textColor" name="Text"/>
@ -1445,8 +1448,8 @@
<constraint firstAttribute="trailing" secondItem="Qno-L9-nUh" secondAttribute="trailing" constant="8" id="pub-Jf-c6W"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7SO-v5-Rfd">
<rect key="frame" x="0.0" y="190" width="375" height="375"/>
<view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7SO-v5-Rfd">
<rect key="frame" x="0.0" y="565" width="375" height="375"/>
<color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="width" secondItem="7SO-v5-Rfd" secondAttribute="height" multiplier="1:1" id="OxV-Aa-cex"/>

20
elpha-ios/SettingsTableViewController.swift

@ -40,14 +40,18 @@ class SettingsTableViewController: UITableViewController {
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
switch indexPath.row {
case 1:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
if let controller = storyboard.instantiateViewController(withIdentifier: "InstancesNavigationController") as? InstancesNavigationController {
self.parent?.present(controller, animated: true)
}
default:
return
case 2:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
if let controller = storyboard.instantiateViewController(withIdentifier: "InstancesNavigationController") as? InstancesNavigationController {
self.parent?.present(controller, animated: true)
}
case 3:
let alert = UIAlertController(title: "Not Implemented", message: "Clear Data Store not implemented yet.", preferredStyle: .actionSheet)
alert.addAction(UIAlertAction(title: "OK", style: .default))
self.parent?.present(alert, animated: true)
default:
return
}
}

39
elpha-ios/StatusTableViewController.swift

@ -24,20 +24,26 @@ class StatusTableViewController: AbstractStatusTableViewController, UIGestureRec
refreshControl?.addTarget(self, action: #selector(self.fetch), for: .valueChanged)
initializeFetchedResultsController()
scrollToMainStatusRow()
self.fetch()
}
func scrollToMainStatusRow() {
if let indexPath = self.fetchedResultsController?.indexPath(forObject: self.status!) {
self.tableView.scrollToRow(at: indexPath, at: .top, animated: true)
}
}
@objc func fetch() {
fetchStatuses { error in
if error == nil {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
if let indexPath = self.fetchedResultsController?.indexPath(forObject: self.status!) {
self.tableView.scrollToRow(at: indexPath, at: .top, animated: true)
}
}
} else {
guard error == nil else {
AlertManager.shared.show(message: error!.localizedDescription, category: .error)
return
}
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
self.scrollToMainStatusRow()
}
}
}
@ -316,13 +322,13 @@ extension StatusTableViewController: NSFetchedResultsControllerDelegate {
tableView.deleteRows(at: [indexPath!], with: UITableView.RowAnimation.none)
case NSFetchedResultsChangeType.update:
switch tableView.cellForRow(at: indexPath!) {
case let cell as StatusTableViewCell:
updateCell(cell, withStatusAt: indexPath!)
case let cell as MainStatusTableViewCell:
self.status = anObject as? StatusMO
updateMainCell(cell, withStatusAt: indexPath!)
default:
return
case let cell as StatusTableViewCell:
updateCell(cell, withStatusAt: indexPath!)
case let cell as MainStatusTableViewCell:
self.status = anObject as? StatusMO
updateMainCell(cell, withStatusAt: indexPath!)
default:
return
}
case NSFetchedResultsChangeType.move:
tableView.deleteRows(at: [indexPath!], with: UITableView.RowAnimation.fade)
@ -405,7 +411,10 @@ extension StatusTableViewController: UITextViewDelegate {
}
}
self.urlTapped(url: URL)
if URL.scheme == "http" || URL.scheme == "https" {
self.urlTapped(url: URL)
}
return false
}
}

25
elpha-ios/StatusView.swift

@ -316,16 +316,16 @@ class StatusView: UIView {
let visibility = StatusVisibility(rawValue: status.visibility!)
switch visibility! {
case .private:
boostsImageView.image = UIImage(named: "Private")
case .direct:
boostsImageView.image = UIImage(named: "Direct")
default:
if status.reblogged {
boostsImageView.image = UIImage(named: "Boost Bold")
} else {
boostsImageView.image = UIImage(named: "Boost Regular")
}
case .private:
boostsImageView.image = UIImage(named: "Private")
case .direct:
boostsImageView.image = UIImage(named: "Direct")
default:
if status.reblogged {
boostsImageView.image = UIImage(named: "Boost Bold")
} else {
boostsImageView.image = UIImage(named: "Boost Regular")
}
}
if status.favorited {
@ -394,7 +394,10 @@ extension StatusView: UITextViewDelegate {
}
}
delegate?.urlTapped(url: URL)
if URL.scheme == "http" || URL.scheme == "https" {
delegate?.urlTapped(url: URL)
}
return false
}
}

48
elpha-ios/StatusView.xib

@ -51,25 +51,25 @@
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="7Og-IU-seR">
<rect key="frame" x="0.0" y="20" width="375" height="851"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bg1-Q4-Ru5">
<rect key="frame" x="0.0" y="0.0" width="375" height="5"/>
<view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bg1-Q4-Ru5">
<rect key="frame" x="0.0" y="-5" width="375" height="5"/>
<color key="backgroundColor" name="Background Secondary"/>
<constraints>
<constraint firstAttribute="height" constant="5" id="hYF-M2-gmn"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fjq-Ff-PVL">
<rect key="frame" x="0.0" y="5" width="375" height="50"/>
<view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fjq-Ff-PVL">
<rect key="frame" x="0.0" y="0.0" width="375" height="0.0"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Up" translatesAutoresizingMaskIntoConstraints="NO" id="701-8A-mp6">
<rect key="frame" x="340" y="15" width="20" height="20"/>
<rect key="frame" x="340" y="-10" width="20" height="20"/>
<constraints>
<constraint firstAttribute="width" constant="20" id="BCi-a6-e9O"/>
<constraint firstAttribute="height" constant="20" id="cD5-It-mON"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Load More" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="IRZ-QQ-s88">
<rect key="frame" x="261.5" y="16.5" width="68.5" height="17"/>
<rect key="frame" x="261.5" y="-8.5" width="68.5" height="17"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" name="Text"/>
<nil key="highlightedColor"/>
@ -88,8 +88,8 @@
<outletCollection property="gestureRecognizers" destination="7gE-ee-xzN" appends="YES" id="tk2-yl-qwQ"/>
</connections>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Gnt-jG-tVj">
<rect key="frame" x="0.0" y="55" width="375" height="100"/>
<view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Gnt-jG-tVj">
<rect key="frame" x="0.0" y="0.0" width="375" height="0.0"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="ecc-6t-6K0">
<rect key="frame" x="8" y="20" width="40" height="40"/>
@ -118,7 +118,7 @@
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8qF-OR-rh0">
<rect key="frame" x="20" y="93" width="335" height="2"/>
<rect key="frame" x="20" y="-7" width="335" height="2"/>
<color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
<constraints>
<constraint firstAttribute="height" constant="2" id="Eyr-af-p55"/>
@ -156,8 +156,8 @@
<outletCollection property="gestureRecognizers" destination="2h0-to-AXg" appends="YES" id="ZUZ-hR-mUu"/>
</connections>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="v8x-tf-zFb">
<rect key="frame" x="0.0" y="155" width="375" height="100"/>
<view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="v8x-tf-zFb">
<rect key="frame" x="0.0" y="0.0" width="375" height="0.0"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="wte-HK-KxR">
<rect key="frame" x="8" y="20" width="40" height="40"/>
@ -186,7 +186,7 @@
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LZx-68-NPT">
<rect key="frame" x="20" y="93" width="335" height="2"/>
<rect key="frame" x="20" y="-7" width="335" height="2"/>
<color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="2" id="oQt-n9-x3j"/>
@ -225,7 +225,7 @@
</connections>
</view>
<view contentMode="scaleToFill" verticalHuggingPriority="249" translatesAutoresizingMaskIntoConstraints="NO" id="cAR-YB-u2k">
<rect key="frame" x="0.0" y="255" width="375" height="116"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="801"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="50m-cW-QIF">
<rect key="frame" x="0.0" y="8" width="367" height="70"/>
@ -268,7 +268,7 @@
</connections>
</view>
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" scrollEnabled="NO" editable="NO" text="Content" textAlignment="natural" translatesAutoresizingMaskIntoConstraints="NO" id="o7b-at-xQ9" customClass="UITextViewFixed" customModule="elpha_ios" customModuleProvider="target">
<rect key="frame" x="8" y="86" width="359" height="22"/>
<rect key="frame" x="8" y="86" width="359" height="715"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="Primary"/>
<gestureRecognizers/>
@ -287,7 +287,7 @@
<constraint firstItem="o7b-at-xQ9" firstAttribute="leading" secondItem="cAR-YB-u2k" secondAttribute="leading" constant="8" id="2NC-sT-kEN"/>
<constraint firstAttribute="trailing" secondItem="50m-cW-QIF" secondAttribute="trailing" constant="8" id="FxM-Hx-2Do"/>
<constraint firstAttribute="trailing" secondItem="o7b-at-xQ9" secondAttribute="trailing" constant="8" id="Ops-Ze-Eya"/>
<constraint firstAttribute="bottom" secondItem="o7b-at-xQ9" secondAttribute="bottom" constant="8" id="Wc8-dM-g26"/>
<constraint firstAttribute="bottom" secondItem="o7b-at-xQ9" secondAttribute="bottom" id="Wc8-dM-g26"/>
<constraint firstItem="50m-cW-QIF" firstAttribute="top" secondItem="cAR-YB-u2k" secondAttribute="top" constant="8" id="dNY-jH-OpT"/>
<constraint firstItem="50m-cW-QIF" firstAttribute="leading" secondItem="cAR-YB-u2k" secondAttribute="leading" id="diD-1N-0MJ"/>
<constraint firstItem="o7b-at-xQ9" firstAttribute="top" secondItem="50m-cW-QIF" secondAttribute="bottom" constant="8" id="t4P-Dj-0Il"/>
@ -296,15 +296,15 @@
<outletCollection property="gestureRecognizers" destination="9fc-Py-yTV" appends="YES" id="nDQ-45-6W2"/>
</connections>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XuS-iF-YYL">
<rect key="frame" x="0.0" y="371" width="375" height="375"/>
<view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XuS-iF-YYL">
<rect key="frame" x="0.0" y="801" width="375" height="0.0"/>
<color key="backgroundColor" white="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="width" secondItem="XuS-iF-YYL" secondAttribute="height" multiplier="1:1" priority="999" id="8CQ-GM-Un6"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="y5N-A7-27p">
<rect key="frame" x="0.0" y="746" width="375" height="50"/>
<rect key="frame" x="0.0" y="801" width="375" height="50"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pJk-g2-yyR">
<rect key="frame" x="8" y="10" width="155" height="30"/>
@ -462,18 +462,18 @@
<constraint firstItem="ZKM-hs-NVu" firstAttribute="leading" secondItem="pJk-g2-yyR" secondAttribute="trailing" constant="8" id="s4k-Oq-Qhh"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0aT-X9-NYg">
<rect key="frame" x="0.0" y="796" width="375" height="50"/>
<view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0aT-X9-NYg">
<rect key="frame" x="0.0" y="851" width="375" height="0.0"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Down" translatesAutoresizingMaskIntoConstraints="NO" id="zEk-jb-LHL">
<rect key="frame" x="15" y="15" width="20" height="20"/>
<rect key="frame" x="15" y="-10" width="20" height="20"/>
<constraints>
<constraint firstAttribute="width" constant="20" id="6Un-al-jZp"/>
<constraint firstAttribute="height" constant="20" id="M2K-o2-1k4"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Load More" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="znl-Zz-bfs">
<rect key="frame" x="45" y="16.5" width="68.5" height="17"/>
<rect key="frame" x="45" y="-8.5" width="68.5" height="17"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" name="Text"/>
<nil key="highlightedColor"/>
@ -492,8 +492,8 @@
<outletCollection property="gestureRecognizers" destination="o5u-JP-Bmz" appends="YES" id="Wxi-2I-YXA"/>
</connections>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="m4t-ve-E78">
<rect key="frame" x="0.0" y="846" width="375" height="5"/>
<view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="m4t-ve-E78">
<rect key="frame" x="0.0" y="851" width="375" height="0.0"/>
<color key="backgroundColor" name="Background Secondary"/>
<constraints>
<constraint firstAttribute="height" priority="999" constant="5" id="QFa-Y9-r5a"/>

Loading…
Cancel
Save