Hello everyone,
I've got my project written in Objective-C. I am learning about bridging.
I bridged successfully Swift into my Objective-C project. I did some VC pushing between Objective-C VC and Swift VC. Everything works as it supposed to.
However, I created the reference to my Objective-C NetworkManager (I used Singleton pattern) in my Swift file like that: let networkManager = NetworkManager.sharedManager()
For some reason I cannot use methods from it. networkManager.getUserInfo() // .getUserInfo() will not appear!
Just to show you how I've created my NetworkManager as a Singleton. I found that solution online and it was quite old, if you have any better solution, I would be more than happy to get some insight:
(id)sharedManager {
static NetworkManager *sharedMyManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedMyManager = [[self alloc] init];
});
return sharedMyManager;
}
(id)init {
if (self = [super init]) {
someProperty = @"Default Property Value";
self.cache = [[NSCache alloc] init];
}
return self;
}
Not sure what is the issue here. Thank you all for the help.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hey guys. I am trying to add UITableView do the View of my VC. On top of the VC I added to UIViews with the custom elements and they work just fine. However. When I am trying to add UITableView, it pushes UIViews from above out of the screen.
Syntax error - https://developer.apple.com/forums/content/attachment/04148dec-e53f-4473-b647-e317c8709e6e
noteTableView = UITableView(frame: .zero)
view.addSubview(noteTableView)
noteTableView.layer.borderColor = UIColor.systemRed.cgColor
noteTableView.layer.borderWidth = 5
NSLayoutConstraint.activate([
noteTableView.topAnchor.constraint(equalTo: addNoteView.bottomAnchor, constant: 0),
noteTableView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0),
noteTableView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0),
noteTableView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0),
])
}
This is how I configured it. addNoteView is the UIView above. What am I doing wrong?
Many thanks for help
Hey guys. I am having an issue with one of my projects.
UICollectionViewCell in my UICollectionView has a plus button with the systemImage "plus". When clicked, its changing to systemImage "checkmark".
The issue is, clicking one button, changes UI for every fifth cell.
On top of that, animation does not finish. Alpha goes to 0, and then the image is being changed, alpha should go to 1 but never gets there. It stops somewhere between 0.7-0.8.
Here is my animation block:
private func animateButtonView(_ viewToAnimate: UIView) {
UIView.animate(withDuration: 0.2, animations: {viewToAnimate.alpha = 0}) { [weak self] (true) in
guard let self = self else { return }
switch true {
case true:
DispatchQueue.main.async {
self.addToFavoritesButton.setImage(SFSymbolsAsImg.checkmark, for: .normal)
}
UIView.animate(withDuration: 0.2, animations: {viewToAnimate.alpha = 1} )
case false:
return
}
}
}
Animation block is executed in my objective function that is called in addTarget for a button.
I've asked that question on many forums and got not much.
I'll appreciate any help. Many thanks!
I am testing iOS15 and some new functionalities of UIKit. I've encountered some issues, not sure how to solve them. I did not change that code. This is just a piece of code that worked perfectly with the iOS 14, now after updating my target, it throws an error.
Xcode crashes the moment when my custom header for the UICollectionView of type UICollectionElementKindSectionHeader is being returned for the dataSource. Here is my code:
private func configureDataSource() {
dataSource = UICollectionViewDiffableDataSource<Section, Follower>(collectionView: collectionView, cellProvider: { (collectionView, indexPath, followers) -> UICollectionViewCell? in
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: FollowerCell.reuseId, for: indexPath) as! FollowerCell
cell.set(on: followers)
return cell
})
dataSource.supplementaryViewProvider = { (collectionView, kind, indexPath) in
let header = collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionView.elementKindSectionHeader,
withReuseIdentifier: FollowersCollectionHeaderView.reuseId,
for: indexPath) as! FollowersCollectionHeaderView
header.set(with: self.user)
return header
}
}
The log says:
the view returned from
-collectionView:viewForSupplementaryElementOfKind:atIndexPath: does not match the element kind it is being used for. When asked for a view
of element kind 'FollowersCollectionHeaderView' the data source
dequeued a view registered for the element kind
'UICollectionElementKindSectionHeader'.
I did cast UICollectionElementKindSectionHeader to FollowersCollectionHeaderView, therefore I am not sure what is the issue here.
I've watched WWDC21 what's new in UIKit but haven't seen any mentioning of any change for that particular code.
Any suggestions, what to fix in that code?