1.在使用代碼中使用通知進行值的傳遞的時候,開闢了一個通知,最後記得移除這個通知,那樣的話這個通知一直存在,假如再運行相同的代碼的時候就會註冊2個通知中心,分別執行對應的事件方法,從而造成了資源的浪費。 (1)這時我發現在二級子控制項中有個有一個UINavigationButton,就是要更改的取消按 ...
1.在使用代碼中使用通知進行值的傳遞的時候,開闢了一個通知,最後記得移除這個通知,那樣的話這個通知一直存在,假如再運行相同的代碼的時候就會註冊2個通知中心,分別執行對應的事件方法,從而造成了資源的浪費。
(1)這時我發現在二級子控制項中有個有一個UINavigationButton,就是要更改的取消按鈕(其它版本的答案都寫的它在UISearchBar的一級子控制項中)。我們雖然不能調用UINavigationButton這個類,但是我們清楚它繼承了UIButton,所以我們可以取到並更改它。
for (UIView *view in [[_searchBar.subviews lastObject] subviews]) { if ([view isKindOfClass:[UIButton class]]) { UIButton *cancelBtn = (UIButton *)view; [cancelBtn setTitle:@"搜索" forState:UIControlStateNormal]; } }
//-----------------------------------------------------------------
2.ios9 Xcode7.2設置Icon問題和啟動屏問題
Assets.xcassets這個集合是放圖片的集合(所有的圖片),開發者想自定義Icon和Launch是在工程中選在這個集合找圖片
- 將Launch Images Source修改為使用assest,Xcode會自動指向到LaunchImage。
- 將Launch Screen File設置為空。
//-------------------------------------------------------------------------
.3.使用UICollectionViewController製作提示屏(摘抄到http://www.jianshu.com/p/16c9d466f88c)
(1) 在開始之前,先說一個問題我們一般在啟動屏之後加提示屁(一般是展示產品的新特性或廣告)所以在程式預設根啟動器有特點的Main.stroyboard中設置,這是的放棄純代碼編寫比較好,不然會遇到程式的崩潰。
(2)雖然UICollectionViewController實現和tableViewController相似但是還是有很多地方的不通
#import "CollectionViewController.h"
#import "MyCollectionViewCell.h"
@interface CollectionViewController ()<UICollectionViewDataSource,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout>
{
UICollectionView *mainCollectionView;
}
@end
@implementation CollectionViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor = [UIColor whiteColor];
//1.初始化layout
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
//設置collectionView滾動方向
// [layout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
//設置headerView的尺寸大小
layout.headerReferenceSize = CGSizeMake(self.view.frame.size.width, 100);
//該方法也可以設置itemSize
layout.itemSize =CGSizeMake(110, 150);
//2.初始化collectionView
mainCollectionView = [[UICollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:layout];
[self.view addSubview:mainCollectionView];
mainCollectionView.backgroundColor = [UIColor clearColor];
//3.註冊collectionViewCell
//註意,此處的ReuseIdentifier 必須和 cellForItemAtIndexPath 方法中 一致 均為 cellId
[mainCollectionView registerClass:[MyCollectionViewCell class] forCellWithReuseIdentifier:@"cellId"];
//註冊headerView 此處的ReuseIdentifier 必須和 cellForItemAtIndexPath 方法中 一致 均為reusableView
[mainCollectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"reusableView"];
//4.設置代理
mainCollectionView.delegate = self;
mainCollectionView.dataSource = self;
}
#pragma mark collectionView代理方法
//返回section個數
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
return 3;
}
//每個section的item個數
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return 9;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
MyCollectionViewCell *cell = (MyCollectionViewCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"cellId" forIndexPath:indexPath];
cell.botlabel.text = [NSString stringWithFormat:@"{%ld,%ld}",(long)indexPath.section,(long)indexPath.row];
cell.backgroundColor = [UIColor yellowColor];
return cell;
}