| 

.NET C# Java Javascript Exception

5
hallo Leute, wie kann ich den mein Frame zusätzlich zu den grössen angaben noch zentrieren? mein Frame hält sich links , warum auch immer.

- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];

// set the frame size
CGRect frame = self.view.frame;
frame.size.height = 310;
frame.size.width = 310;
self.view.frame = frame;

}


danke
News:
15.10.2011
snuffy 231 1 5
4 Antworten
1
Also am einfachsten kann man einen Frame zentrieren in dem man seine .center variable mit dem Wert der .center Variable des Frames in dem man den zu zentrierenden Frame zentrieren möchte belegt.
Lange Rede kurzer Sinn.

v_zuZentrierenderView.center = v_viewInDemZentriertWerdenSoll.center;


Die Zeile fügst du am besten ein, nachdem du die Größe von deinem Frame geändert hast.
Viel Erfolg.
21.10.2011
Maverick1st 332 1 7
2
Hallo snuffy,
du kannst dich an der übergeordneten View orientieren:

CGSize size = self.superview.frame.size;
[self.view setCenter:CGPointMake(size.width/2, size.height/2)];

Eventuell geht es eleganter mit der autoresizingMask. Das ist hilfreich wenn sich die Größe der übergeordneten View ändern kann.
Gruß
Daniel
15.10.2011
puls200 3,8k 7
1
Versteh ich nicht ganz , wo kann ich das einbauen in den ( viewDidLoad ) ?

:) kann mir da noch mal wer helfen ? danke

irgendwie ist das ganze immer Linksbündig egal wo ich das eintrage :(

mein code:

@implementation ArchiveController

@synthesize scans;
@synthesize results;
@synthesize delegate;
@synthesize dateFormatter;


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [scans count];
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 44.0;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *ScanIdentifier = @"ScanIdentifier";

ScanCell *cell = (ScanCell *)[tableView dequeueReusableCellWithIdentifier:ScanIdentifier];
if (cell == nil) {
cell = [[[ScanCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ScanIdentifier] autorelease];
}

// Configure the cell
int idx = [self scanIndexForRow:indexPath.row];
Scan *scan = [scans objectAtIndex:idx];
[cell setScan:scan];
return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
//[decoderViewController showScan:[scans objectAtIndex:[self scanIndexForRow:indexPath.row]]];
int idx = [self scanIndexForRow:indexPath.row];
Scan *scan = [scans objectAtIndex:idx];
ParsedResult *result = [results objectAtIndex:idx];
ScanViewController *scanViewController = [[ScanViewController alloc] initWithResult:result forScan:scan];
[self.navigationController pushViewController:scanViewController animated:YES];
[scanViewController release];
}

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
int idx = [self scanIndexForRow:indexPath.row];
Scan *scan = [self.scans objectAtIndex:idx];
// delete the scan from the database ...
[[Database sharedDatabase] deleteScan:scan];
// ... delete the scan from our in-memory cache of the database ...
[scans removeObjectAtIndex:idx];
// ... delete the corresponding result from our in-memory cache ...
[results removeObjectAtIndex:idx];
// ... and remove the row from the table view.
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
// [tableView reloadData];
} else if (editingStyle == UITableViewCellEditingStyleInsert) {
// no insertions!
}
}

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
return YES;
}

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
}

- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
return NO;
}


- (void)dealloc {
[scans release];
[results release];
delegate = nil;
[dateFormatter release];
[super dealloc];
}


- (void)viewDidLoad {
[super viewDidLoad];
NSMutableArray *theScans = [[NSMutableArray alloc] init];
self.scans = theScans;
[theScans release];

NSMutableArray *theResults = [[NSMutableArray alloc] init];
self.results = theResults;
[theResults release];

NSDateFormatter *theDateFormatter = [[NSDateFormatter alloc] init];
self.dateFormatter = theDateFormatter;
[theDateFormatter release];

////
self.navigationController.navigationBar.tintColor = [UIColor blackColor];


////

self.title = NSLocalizedString(@"ScanArchiveTitle", @"History");
self.navigationItem.rightBarButtonItem = [self editButtonItem];

////




self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
// self.tableView.rowHeight = 100;

self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.separatorColor = [UIColor grayColor];
self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Leerbackgroundimage.png"]];


////

//self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Back",@"Back") style:UIBarButtonItemStyleDone target:self action:@selector(done:)] autorelease];

self.scans = [NSMutableArray arrayWithArray:[[Database sharedDatabase] scans]];
self.results = [NSMutableArray arrayWithCapacity:self.scans.count];
for (Scan *scan in scans) {
ParsedResult *res = [UniversalResultParser parsedResultForString:scan.text];
[results addObject:res];
}
}

-(void)done:(id)sender {
[delegate modalViewControllerWantsToBeDismissed:self];
}


- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.scans = [NSMutableArray arrayWithArray:[[Database sharedDatabase] scans]];
self.results = [NSMutableArray arrayWithCapacity:self.scans.count];
for (Scan *scan in scans) {
[results addObject:[UniversalResultParser parsedResultForString:scan.text]];
}
[self.tableView reloadData];
}

- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];

////



CGRect frame = self.view.frame;
frame.size.height = 341;
frame.size.width = 280;
self.view.frame = frame;

////
}

- (void)viewWillDisappear:(BOOL)animated {
self.scans = nil;
self.results = nil;
}

- (void)viewDidDisappear:(BOOL)animated {
}

- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}

- (NSInteger)scanIndexForRow:(NSInteger)row {
return scans.count - 1 - row;
}

@end
15.10.2011
snuffy 231 1 5
Also so wird das m.E. nicht funktionieren, wenn das Ding von UITableViewController abgeleitet ist. Du musst zwei Views ineinander schachteln. Hier findest du evtl. noch eine Anregung: http://geekswithblogs.net/samerpaul/archive/2011/04/20/uitableview-and-uiviewcontroller-as-a-subview.aspx
Am saubersten erscheint mir eine Lösung bei der man von UIViewController ableitet und eine UITableView programmatisch hinzufügt.
puls200 15.10.2011
0
danke funktioniert bestens !
21.10.2011
snuffy 231 1 5

Stelle deine Iphone-Frage jetzt!