使用UIAlertView创建以下警报,该警报在顶部和底部显示多余的空间,如图1所示。
我想删除此间距,如图2所示。
请提出任何解决方案。
我的警报代码:使用iOS 7.1
- (id)initWithFrame:(CGRect)frame Cancel:(NSString *)CancelValue Set:(NSString *)SetValue Tag:(int)TagValue Array:(NSMutableArray *)ArrayValue
{
self = [super initWithFrame:frame];
if (self)
{
// Initialization code
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:nil delegate:self cancelButtonTitle:nil otherButtonTitles:nil, nil];
UIView *vwAlert = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 380)];
[alert addSubview:vwAlert];
UITableView *table = [[UITableView alloc] initWithFrame:CGRectMake(20, 0, 280, 350) style:UITableViewStylePlain];
table.dataSource = self;
table.delegate = self;
table.scrollEnabled = NO;
table.tag = TagValue;
[table setSeparatorInset:UIEdgeInsetsZero];
[vwAlert addSubview:table];
aryTitle = [[NSMutableArray alloc] initWithObjects:@"Sort Habits",@"Habit Records",@"Category", nil];
vwAlert.frame = CGRectMake(0, 0, 320, 170);
table.frame = CGRectMake(20, 0, 280, vwAlert.frame.size.height);
btnCancel.hidden=YES;
btnSet.hidden=YES;
UIImageView *imgVw = [[UIImageView alloc] initWithFrame:CGRectMake(250, 2, 40, 40)];
imgVw.image = [UIImage imageNamed:@"icon_filter_clear"];
[vwAlert addSubview:imgVw];
UIButton *btnClearAll = [UIButton buttonWithType:UIButtonTypeSystem];
btnClearAll.frame = CGRectMake(235, 0, 60, 40);
[btnClearAll addTarget:self action:@selector(funClearAll:) forControlEvents:UIControlEventTouchUpInside];
[vwAlert addSubview:btnClearAll];
[table reloadData];
[alert setValue:vwAlert forKey:@"accessoryView"];
[alert show];
}
return self;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 3;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.selectionStyle = UITableViewCellSelectionStyleGray;
}
cell.textLabel.text = [aryRestore objectAtIndex:(indexPath.row)];
cell.textLabel.font = [UIFont fontWithName:@"Avenir Next" size:16];
return cell;
}
图片1
图片2
创建如下的自定义alertview。
CustomAlertView.h
@interface CustomAlertView:UIAlertView {}
CustomAlertView.m
// override
- (void)drawRect:(CGRect)rect
{
for(UIView * sub in self.subviews)
{
[sub removeFromSuperview];
}
// this removeFromSuperview will clear all thing such as background view and buttons
// do something
}
现在,在您的视图控制器中,如下所示导入此customalertview。
#import "CustomAlertView.h"
然后代替
UIAlertView *alert = [[UIAlertView alloc]
使用
CustomAlertView *alert = [[CustomAlertView alloc]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句