我正在编写我的第一个iOS应用程序,并且我在更改UICollectionView的backgroundColor时遇到了一些问题.
该应用程序具有导航控制器和某些视图.最初,我能够更改AppDelegate实现文件中的颜色:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
feedsList = [[FeedsListTVC alloc] init];
rootNC = [[RootNC alloc] init];
rootNC.viewControllers = [NSMutableArray arrayWithObjects:feedsList, nil];
self.window.rootViewController = rootNC;
return YES;
}
Run Code Online (Sandbox Code Playgroud)
运用
self.window.backgroundColor = [UIColor whiteColor];
Run Code Online (Sandbox Code Playgroud)
我能够改变所有视图的背景颜色.但是,我决定添加一个视图(UICollectionView)并将其设置为主视图.所以我将AppDelegate更改为:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
CollectionViewLayoutCVL *collectionViewLayout = [[CollectionViewLayoutCVL alloc] init];
self.viewController = [[MainViewControllerCVC alloc] initWithCollectionViewLayout:collectionViewLayout];
rootNC = …Run Code Online (Sandbox Code Playgroud) ios uibackgroundcolor uicollectionview uicollectionviewlayout
我正在开发一个应用程序,我刚刚升级到Xcode 9/Swift 4,并且还将我的iPhone升级到了iOS 11.当我安装iOS 11时安装了应用程序,所有看起来都没问题,直到我从Xcode运行它.现在我陷入了默认的NavBar高度.
我用来更改高度的代码不再有效:
class CustomNavControllerVC: UINavigationController
{
let navBarHeight : CGFloat = 64.0
let navbarBackButtonColor = UIColor(red: 247/255, green: 179/255, blue: 20/255, alpha: 1)
override func viewDidLoad()
{
super.viewDidLoad()
print("CustomNavControllerVC > viewDidLoad")
}
override func viewDidLayoutSubviews()
{
print("CustomNavControllerVC > viewDidLayoutSubviews")
super.viewDidLayoutSubviews()
navigationBar.frame.size.height = navBarHeight
navigationBar.tintColor = navbarBackButtonColor
}
override func didReceiveMemoryWarning()
{
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
// In my VCs
override func viewDidLoad()
{
customizeNavBar()
}
func customizeNavBar()
{ …Run Code Online (Sandbox Code Playgroud) 我有一个带加载屏幕的简单应用程序.在这里,我检查NSUserDefaults中的一些用户详细信息,并跳转到登录或注册屏幕.
加载屏幕的viewDidLoad()如下所示:
override func viewDidLoad()
{
super.viewDidLoad()
loadingVM = LoadingVM() as LoadingVM
print("LoadingVC")
checkStoredUser()
}
Run Code Online (Sandbox Code Playgroud)
这是checkStoredUser()
func checkStoredUser()
{
storedUserStatus = loadingVM.returnStoredUserStatus()
if(storedUserStatus == true)
{
performSegueWithIdentifier("loadingToLoginVC", sender: self)
}
else
{
performSegueWithIdentifier("loadingToSignUpVC", sender: self)
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我根据loadingVM.returnStoredUserStatus()返回的内容决定从何处开始.我确信这会返回它应该返回的内容,但没有任何反应.
这是prepareForSegue()
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
print("prepareForSegue")
if(segue.identifier == "loadingToSignUpVC")
{
let signUpViewCotroller = (segue.destinationViewController as! LocalSignUpVC)
}
else if(segue.identifier == "loadingToLoginVC")
{
print("loadingToLoginVC")
let loginViewCotroller = (segue.destinationViewController as! LoginVC)
}
}
Run Code Online (Sandbox Code Playgroud)
我做了一些挖掘工作,发现了一个似乎有效的奇怪建议但不提这样做的权利并不是很实际:
func checkStoredUser()
{
storedUserStatus = loadingVM.returnStoredUserStatus()
let …Run Code Online (Sandbox Code Playgroud) 我有一个 UISearchBar,我想更改初始放大图标的位置(出现在 UISearchBar 中间的那个)以及颜色或图标。
到目前为止,我更改了色调和图标图像。
但是,只有当我在模拟器上测试应用程序时才会显示新图标,但在实际设备(均运行 iOS 9.3)上它仍然显示默认图标。
UISearchBar.appearance().setImage(UIImage(named: "SearchbarIcon"), forSearchBarIcon: UISearchBarIcon.Search, state: UIControlState.Normal)
Run Code Online (Sandbox Code Playgroud)
至于放大图标的位置,我希望它在左侧,如果我激活 UISearchBar,它就会显示在那里。
我在这里找到了很多答案,许多提供的解决方案不适用于 iOS 8.0+ 或在 Objective-C 中,我在理解它们时遇到了一些问题。
我试图添加一个包含图标的自定义背景,但它显示在搜索栏的底部,而图标仍然存在:
如果我将 Y 的背景偏移更改为 -44(UISearchBar 的高度),背景显示正常,但我无法再输入,因为似乎整个文本字段都被向上推了。我还尝试将 SearchText 的垂直偏移更改为 44 以进行补偿,但没有运气。老实说,我不确定搜索文本和背景偏移量应该做什么,但我决定尝试一下。
有什么办法可以做到这一点吗?或者也许是一种不同的方法?
首先,不确定标题是否正确或提供了最好的描述,但我不确定还可以使用什么。
所以,我正在开发一个应用程序,但我在实现 UI 时遇到了卡住的部分。基本上,我有一个 VC(下图),它可以根据我从 JSON 文件中获得的信息进行自我定位。
问题是我需要在上侧有一个类似轮播的菜单,其中包含未定义数量的单元格(同样,取决于我从 JSON 文件中获得的内容)。我决定为此使用 UICollectionView 并且我设法毫无问题地实现了基础知识。
但这是我卡住的部分:
我试图找到类似的东西,但也许我没有在寻找正确的东西,因为我能找到的只是按单元格而不是屏幕分页 UICollectionView
另外,老实说,我从未见过具有这种行为的应用程序/ UICollectionView。
我在下面发布了部分代码,但它并没有多大帮助,因为它只是标准的 UICollectionView 方法。
有什么建议?
class PreSignupDataVC : UIViewController, UICollectionViewDelegateFlowLayout, UICollectionViewDataSource, UIPickerViewDelegate, UIPickerViewDataSource
@IBOutlet weak var cvQuestions: UICollectionView!
var questionCell : PreSignupDataQuestionCellVC!
var screenData : Array<PreSignupScreenData> = Array<PreSignupScreenData>()
var pvDataSource : [String] = []
var numberOfComponents : Int = 0
var numberOfRowsInComponent : Int = 0
var currentScreen : Int = 1
var selectedType : Int?
var selectedCell : …Run Code Online (Sandbox Code Playgroud) uipickerview scroll-paging uicollectionview uicollectionviewcell swift
swift ×4
ios ×3
height ×1
icons ×1
ios11 ×1
magnify ×1
segue ×1
uipickerview ×1
uisearchbar ×1