我有一個UIView
包含超過20 UIButtons
。在點擊這些按鈕時,我發現一個包含UIPickerView
和兩個UIButtons
('OK','CANCEL')的獨特UIView
作爲其子視圖(每個按鈕對應於揭示單獨和不同的UIVIews
)。減少加載UIView的時間延遲
我已經通過IB創建了所有UIViews
(其中20個),並將它們全部設置爲最初隱藏。所以每當我點擊一個按鈕,它就會顯示一個視圖,然後點擊'OK'或'CANCEL'再次隱藏視圖。
問題是,當這個視圖控制器是從另一個推動,需要很長時間來加載(如5秒),我懷疑時間滯後是由於加載所有的子視圖之前父UIView
出現。
我想減少或取消此時滯。
編輯:
我在viewDidLoad
修剪代碼。
- (void)viewDidLoad
{
@try
{
[super viewDidLoad];
NavigationBarButtonItems *nav=[[NavigationBarButtonItems alloc]init];
self.navigationItem.rightBarButtonItems = [nav BarButtonItems];
//the following properties are only for 'quantity' button and its view whereas the original method contains same properties set for all 20 buttons and its views.
_quantityView.layer.cornerRadius=8;
_quantityView.clipsToBounds=YES;
_quantityButton.layer.cornerRadius=8;
_quantityView.hidden=YES;
//DEFAULT SELECTED VALUES
[email protected]"";
//only quantity array is initialised here to populate its pickerview. The actual code contains more than 20 arrays initalised for each picker view
NSArray *quantityData=[[NSArray alloc]init];
for(int i=1;i<=100;i++) [quantityData addObject:[NSString stringWithFormat:@"%d",i]];
quantityArray=quantityData;
// Do any additional setup after loading the view.
}
@catch (NSException *exception)
{
NSLog(@"Medications-> View did Load-> %@",exception.name);
}
}
這是一種這樣的UIButton
( '數量')和UIView
( 'QUANTITYVIEW')點擊時顯示:
- (IBAction)OnClickQuantityButton:(id)sender
{
@try
{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.01 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
[_mainView setNeedsDisplay];
CGPoint centerPoint = CGPointMake(160, _mainScrollView.contentOffset.y+228);
_quantityView.center= centerPoint;
_quantityView.hidden=NO;
});
}
@catch (NSException *exception)
{
NSLog(@"Medications-> quantity button-> %@",exception.name);
}
}
- (IBAction)OnClickQuantityOkButton:(id)sender
{
@try
{
_quantityLabel.text=selectedQuantity;
_quantityView.hidden=YES;
}
@catch (NSException *exception)
{
NSLog(@"Medications-> quantity ok button-> %@",exception.name);
}
}
- (IBAction)OnClickQuantityCancelButton:(id)sender
{
_quantityView.hidden=YES;
}
你能顯示一些代碼嗎?謝謝。 – Ricky
爲什麼不在需要時創建20個UIView中的每一個。嘗試「懶惰實例化」。 – CrimsonChris
@ voyage11檢查編輯 – motox