0

HTML記事を表示するためのUIWebViewがあります。ユーザーが UIWebView の一部の領域をタッチすると、UIMenuController が表示されます。次に、ユーザーがメモボタンを選択するとUITextViewが表示され、ユーザーはテキストを書き込むことができ、その後、ReaddleアプリのDocumentsのように、そのタッチした領域にテキストを保存できます。テキストを書き込んでデータベースに保存するまで作成しました。テキストを保存した後、タッチした領域にボタンを表示する必要があります。ボタンを有効にするには?

UIWEbView は記事ページを表示します:

ここに画像の説明を入力

UIMenuController を長押しすると、メモが表示されます。

ここに画像の説明を入力

メモを選択すると、メモを書き込むために UITextView が表示されます。[完了] ボタンをクリックすると、UItextView が削除され、UIWebView が表示されます。ここに画像の説明を入力

小さなボタンまたはアイコンを uiwebview の長押し位置に表示する必要があります。上のUIWebViewの位置はCommencesです。ほぼ開始テキストでは、[完了] ボタンをクリックした後に小さなアイコンを表示する必要があります

- (void)viewDidLoad
{
    [wbCont loadHTMLString:webString baseURL:nil];
    wbCont.userInteractionEnabled=YES;
    [self.view addSubview:wbCont];

    menuItem = [[UIMenuItem alloc] initWithTitle:@"Notes" action:@selector(note:)];
    [items addObject:menuItem];

}

長押しするとUIMenuItemが開き、メモをクリックしてからUItextViewを開きます

- (void)note:(id)sender{

    NSLog(@"Note");

    self.navigationController.navigationBarHidden=YES;

    txtview = [[UITextView alloc]initWithFrame:CGRectMake(0,0,320,568)];

    txtview.font = [UIFont fontWithName:@"Helvetica" size:12];
    txtview.font = [UIFont boldSystemFontOfSize:12];
    txtview.backgroundColor = [UIColor whiteColor];
    txtview.scrollEnabled = YES;
    txtview.pagingEnabled = YES;
    txtview.editable = YES;

    [self.view addSubview:txtview];

    button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [button addTarget:self
               action:@selector(click:)
    forControlEvents:UIControlEventTouchDown];
    [button setTitle:@"Done" forState:UIControlStateNormal];
    button.frame = CGRectMake(240.0, 20.0, 60.0, 40.0);
    [txtview addSubview:button];

}

次に、[完了] ボタンをクリックして、テキストを保存します。

-(void)click:(id)sender{

    NSLog(@"done");

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    // NSString *documentsDirectory = [paths objectAtIndex:1];

    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"ohs.sqlite"];
    NSLog(@"filepath %@",path);


    if (sqlite3_open([path UTF8String], &database) == SQLITE_OK) {

        const char *sql = [[NSString stringWithFormat:@"SELECT textnotes FROM textnote where textnote = '%@'",txtview.text] cStringUsingEncoding:NSUTF8StringEncoding];

        NSLog(@"sql is %s",sql);

        BOOL favExist = false;

        sqlite3_stmt *statement, *addStmt;

        if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK) {
            // We "step" through the results - once for each row.
            while (sqlite3_step(statement) == SQLITE_ROW) {

            favExist = true;
            }
        }

        if(!favExist){

            const char *sqlInsert = [[NSString stringWithFormat:@"insert into textnote (textnotes ) values ('%@')", txtview.text] cStringUsingEncoding:NSUTF8StringEncoding];

            NSLog(@"sql insert is %s",sqlInsert);

            // [catID release];

            if(sqlite3_prepare_v2(database, sqlInsert, -1, &addStmt, NULL) != SQLITE_OK)
                NSAssert1(0, @"Error while creating add statement. '%s'", sqlite3_errmsg(database));

            if(SQLITE_DONE != sqlite3_step(addStmt))
                NSAssert1(0, @"Error while inserting data. '%s'", sqlite3_errmsg(database));


       }else {

        }

    }

    [txtview removeFromSuperview];
    [button removeFromSuperview];

  }

テキストを保存した後、テキストビュー、ボタンを削除します。次に、UIWebView が表示されます。UIwebView は readdle アプリで Documents のようなテキストを保存するためのボタンを表示する方法について説明します。

4

0 に答える 0