这是我的代码,显示表中的数据,我的完整数据没有显示在单元格中。 第一个图像是当我将可滚动设置为否时,第二个图像,当我没有设置scrollable.i我是一个beginner.plz帮我解决这个问题。
- (void)textViewDidChange:(UITextView *)textView{
[table beginUpdates];
[table endUpdates];
}
-(void)createdatabase{
BOOL success;
NSFileManager *filemanager = [NSFileManager defaultManager];
success = [filemanager fileExistsAtPath:datapath];
if (success)return;
NSString *databasefromapp = [[[NSBundle mainBundle] resourcePath]stringByAppendingPathComponent:dataname];
[filemanager copyItemAtPath:databasefromapp toPath:datapath error:nil];
}
-(void)getdatabase{
eventitleary = [[NSMutableArray alloc]init];
eventdescary = [[NSMutableArray alloc]init];
eventimgary = [[NSMutableArray alloc] init];
sqlite3 *dataname1;
if (sqlite3_open([datapath UTF8String],&dataname1) == SQLITE_OK) {
const char *sqlStatement;
sqlStatement = "SELECT * FROM photography_events";
sqlite3_stmt *compiledStatement;
if(sqlite3_prepare_v2(dataname1, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK)
{
// Loop through the results and add them to the feeds array
while(sqlite3_step(compiledStatement) == SQLITE_ROW)
{
// Read the data from the result row
NSString *str_title = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)];
[eventitleary addObject:str_title];
NSString *str_desc = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 3)];
[eventdescary addObject:str_desc];
NSData *data = [[NSData alloc] initWithBytes:sqlite3_column_blob(compiledStatement, 2) length:sqlite3_column_bytes(compiledStatement, 2)];
[eventimgary addObject:data];
}
}
}
NSLog(@"%@", eventitleary);
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return eventitleary.count;
}
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
NSString *cellidenti = @"CellIdenti";
TableViewCell2 *cell = (TableViewCell2*)[tableView dequeueReusableCellWithIdentifier:cellidenti];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle]loadNibNamed:@"TableViewCell2" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
cell.eventitlelbl.text = [eventitleary objectAtIndex:indexPath.row];
cell.eventdesc.text = [eventdescary objectAtIndex:indexPath.row];
cell.eventdesc.editable = NO;
//cell.eventdesc.scrollEnabled = NO;
[cell.eventdesc sizeToFit];
frame = cell.eventdesc.frame;
frame.size = cell.eventdesc.contentSize;
cell.eventdesc.frame = frame;
NSData *dataimg = (NSData*)[eventimgary objectAtIndex:indexPath.row];
cell.eventimg.image = [UIImage imageWithData:dataimg];
return cell;
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
// Return the height with a bit of additional padding space
return frame.size.height + 300;
}
答案 0 :(得分:2)
您可以通过自适应布局实现此目的。 Check this awesome tutorial if you are working with autolayout。另外,您可以通过计算文本适合的高度来设置动态tableView单元格高度。
您可以使用以下方法计算文字的高度。传递textview,textview所需的字体和宽度。
-(CGFloat)heightForText:(NSString*)text withFont:(UIFont *)font andWidth:(CGFloat)width
{
CGSize constrainedSize = CGSizeMake(width, MAXFLOAT);
NSDictionary *attributesDictionary = [NSDictionary dictionaryWithObjectsAndKeys:font, NSFontAttributeName,nil];
NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:text attributes:attributesDictionary];
CGRect requiredHeight = [string boundingRectWithSize:constrainedSize options:NSStringDrawingUsesLineFragmentOrigin context:nil];
if (requiredHeight.size.width > width) {
requiredHeight = CGRectMake(0,0,width, requiredHeight.size.height);
}
return requiredHeight.size.height;
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return [self heightForText:@"your text view text for this row" withFont:[UIFont fontWithName:@"Helvetica" size:16] andWidth:320];
}
答案 1 :(得分:1)